อ่านไฟล์ txt โดยมีสองบรรทัดสำหรับแต่ละกรณี ด้วย R [ซ้ำกัน]

วิธีอ่านจากไฟล์ R a .txt โดยมีสองบรรทัดสำหรับแต่ละกรณี ตัวอย่างเช่นไฟล์เช่น [ http://www.amstat.org/publications/jse/datasets/93cars.dat.txt ] โปรดช่วยด้วย ซีแอล


person user2203706    schedule 09.05.2015    source แหล่งที่มา


คำตอบ (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)
person Forrest R. Stevens    schedule 09.05.2015
comment
สวัสดีฟอเรสต์ ฉันขอขอบคุณสำหรับความช่วยเหลือของคุณ ขออภัยเกี่ยวกับ ] - person user2203706; 14.05.2015

มีวิธีอื่นอีกมากมายในการทำเช่นนี้ และแน่นอนว่าคำถามนี้ซ้ำกับคำถาม ที่นี่ (คำถามเดียวกัน ข้อมูลเดียวกัน) ซึ่งมีคำตอบโดยใช้ read.fwf ซึ่งคุณต้องทราบความกว้างคงที่ของแต่ละฟิลด์ สิ่งนี้สามารถดำเนินการได้โดยอัตโนมัติแต่อาจยุ่งยาก

วิธีที่ปรับขนาดได้มากที่สุด อย่างน้อยบนเครื่อง POSIX คือการใช้เครื่องมือบรรทัดคำสั่ง เช่น awk เพื่อดำเนินการประมวลผลล่วงหน้าอย่างมีประสิทธิภาพและรวดเร็วสำหรับคุณ นี่คือตัวอย่างการใช้ awk ที่อ่านไฟล์เป็นสองส่วน (แถวสลับ) และ cbinds รวมกัน

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