【发布时间】:2013-08-01 15:55:36
【问题描述】:
我正在处理包含不同数量元素的许多长行的文本文件。行中的每个元素都由 \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,stringAsFactors=FALSE,quote = "",comment.char = ""
但无济于事。
有人知道会发生什么吗?
【问题讨论】:
-
read.table期望每行中的元素数量相同。你应该改用scan。 -
readLines是另一个有用的工具。 -
我之前没有使用过 scan 或 readLines。他们似乎只是逐项阅读。如何以具有不同行的数据框格式获取它?
-
如果您在该文件上运行
count.fields,它似乎只有 8 行数据,并且每行的变量数范围为 22897-75294。
标签: r dataframe text-files