как читать из R файл .txt с двумя строками для каждого случая. Например, такой файл, как [ http://www.amstat.org/publications/jse/datasets/93cars.dat.txt ] Пожалуйста, помогите. КЛ
прочитать текстовый файл с двумя строками для каждого случая; с R
Ответы (2)
Я думаю, что это самый простой способ, который я могу придумать. И вы должны отметить, что ваша URL-ссылка в вопросе включает квадратную скобку, которая может замедлить людей.
u <- url("http://www.amstat.org/publications/jse/datasets/93cars.dat.txt")
d <- readLines(u)
s <- paste(d[seq(1,length(d),2)], d[seq(2,length(d),2)])
data <- read.table(header=F, stringsAsFactors=F, text=s)
Есть много других способов сделать это, и действительно, этот вопрос является точной копией вопроса здесь (тот же вопрос, те же данные), в котором есть ответ с использованием read.fwf
, который требует, чтобы вы знали фиксированную ширину каждого поля. Это может быть автоматизировано, но, возможно, громоздко.
Самый масштабируемый способ, по крайней мере, на POSIX-машинах, — это использовать инструменты командной строки, такие как awk
, для эффективного и быстрого выполнения предварительной обработки. Вот пример использования awk
, который читает файл двумя частями (чередующимися строками) и cbind
совмещает их вместе.
download.file("http://www.amstat.org/publications/jse/datasets/93cars.dat.txt",
destfile = "Data/93cars.txt")
firstPart = pipe(description = "awk 'NR%2==0' < Data/93cars.txt")
secondPart = pipe(description = "awk 'NR%2 != 0' < Data/93cars.txt")
dfCars = cbind(read.table(firstPart), read.table(secondPart))