0

我正在处理具有不同数量元素的许多长行的文本文件。行中的每个元素都由 \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);

昏暗返回 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 = ""

但无济于事。

有谁知道会发生什么?

4

1 回答 1

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)

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

于 2013-07-31T23:14:10.917 回答