read.table返回额外的行

时间:2013-07-31 22:20:16

标签: r dataframe text-files

我正在使用包含不同数量元素的许多长行的文本文件。行中的每个元素都以\ t分隔,当然行以\ n结尾。我正在使用read.table来读取文本文件。示例文件是:https://www.dropbox.com/s/6utslbnwerwhi58/samplefile.txt

示例文件有60行。

读取文件的代码:

sampleData <- read.table("samplefile.txt", as.is=TRUE, fill = TRUE);
dim(sampleData);

dim返回70行,实际上它应该是60.当我尝试nrows = 60之类的

sampleData <- read.table("samplefile.txt", as.is=TRUE, fill = TRUE, nrows = 60);
dim(sampleData);

它确实有效,但是,我不知道这样做是否会删除一些信息。我怀疑是某些行的最后部分被添加到新行中。我不知道为什么会这样,因为我有fill = TRUE;

我也试过

  

na.strings =“NA”,fill = TRUE,strip.white = TRUE,blank.lines.skip =   TRUE,stringsAsFactors = FALSE,quote =“”,comment.char =“”

但无济于事。

有没有人知道可能会发生什么?

1 个答案:

答案 0 :(得分:2)

如果没有可重复的示例,请尝试以下方法:

# Make some fake data
R <- c("1 2 3 4","2 3 4","4 5 6 7 8")
writeLines(R, "samplefile.txt")

# read line by line
r <- readLines("samplefile.txt")

# split by sep
sp <- strsplit(r, " ")

# Make each into a list of dataframes (for rbind.fill)
sp <- lapply(sp, function(x)as.data.frame(t(x)))

# now bind
library(plyr)
rbind.fill(sp)

如果这与您的实际问题类似,无论如何。