baca file txt dengan dua baris untuk setiap kasus; dengan R [duplikat]

cara membaca dari R file .txt dengan dua baris untuk setiap kasus. Misalnya file seperti [ http://www.amstat.org/publications/jse/datasets/93cars.dat.txt ] Mohon bantuannya. sel


person user2203706    schedule 09.05.2015    source sumber


Jawaban (2)


Saya pikir ini adalah cara paling sederhana yang dapat saya pikirkan. Dan perlu diperhatikan bahwa tautan URL Anda dalam pertanyaan menyertakan tanda kurung siku, yang mungkin memperlambat orang.

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)
person Forrest R. Stevens    schedule 09.05.2015
comment
Hai, Forrest, saya menghargai bantuan Anda. Maaf tentang ]. - person user2203706; 14.05.2015

Ada banyak cara lain untuk melakukan ini, dan memang pertanyaan ini merupakan duplikat persis dari pertanyaan di sini (pertanyaan yang sama, data yang sama), yang jawabannya menggunakan read.fwf yang mengharuskan Anda mengetahui lebar tetap setiap bidang. Ini bisa dilakukan secara otomatis tetapi mungkin rumit.

Cara yang paling terukur, setidaknya pada mesin POSIX adalah dengan menggunakan alat baris perintah seperti awk untuk melakukan pra-pemrosesan secara efisien dan cepat untuk Anda. Berikut adalah contoh penggunaan awk yang membaca file dalam dua bagian (baris alternatif) dan cbinds bersama-sama.

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))
person tchakravarty    schedule 09.05.2015