读取txt文件,每个案例有两行;与R

时间:2015-05-09 19:36:46

标签: r rstudio

如何从R a .txt文件中读取每行两行。例如像[http://www.amstat.org/publications/jse/datasets/93cars.dat.txt]这样的文件 请帮忙。 CL

2 个答案:

答案 0 :(得分:0)

我认为这是我能想到的最简单的方法。您应该注意,问题中的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)

答案 1 :(得分:0)

还有很多其他方法可以做到这一点,事实上这个问题与问题here(同一问题,相同数据)的完全相同,后者使用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))