在R中读取txt文件时出错
Posted
技术标签:
【中文标题】在R中读取txt文件时出错【英文标题】:Error while reading txt file in R 【发布时间】:2017-10-19 17:54:50 【问题描述】:我想知道在 R 中使用 read.table 读取 txt 文件时遇到的以下错误是否可以得到帮助。
我的 txt 文件格式如下:
Subject ID Span Accuracy Accuracy (SD) Avg RT Avg RT (SD) Median RT Number of Trials Date/Time
1 2 1 0 3206 1702.713 3206 2 08/23/2016 12:54:13
1 3 1 0 2485.5 12.021 2485.5 2 08/23/2016 12:54:13
1 4 1 0 3513 0 3513 1 08/23/2016 12:54:13
我运行代码
test <- read.table('test.txt', sep = "\t")
我会得到错误
Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, :
line 2 did not have 10 elements
但是,如果我只在 txt 中包含标题并删除以下数据行,我可以运行相同的代码并获取:
> test
V1 V2 V3 V4 V5 V6 V7 V8 V9
1 Subject ID Span Accuracy Accuracy (SD) Avg RT Avg RT (SD) Median RT Number of Trials Date/Time
如果我从 txt 中删除标题并仅包含 txt 中的数据行,我也可以运行相同的代码并得到:
> test
V1 V2 V3 V4 V5 V6 V7 V8 V9
1 1 2 1 0 3206.0 1702.713 3206.0 2 08/23/2016 12:54:13
2 1 3 1 0 2485.5 12.021 2485.5 2 08/23/2016 12:54:13
3 1 4 1 0 3513.0 0.000 3513.0 1 08/23/2016 12:54:13
标题和数据似乎都包含 9 个元素,但如果我在同一个 txt 文件中同时包含标题行和数据行,我会收到错误消息“第 2 行没有 10 个元素”。我尝试使用 header = FALSE 但它给出了同样的错误。
如果有人能帮助我解决这个问题,我将不胜感激。我有大量格式相同的 txt 文件,因此打开每个 txt 并手动删除标题行对我来说是不现实的。
谢谢!
【问题讨论】:
这可能是因为您的列Date/Time
的日期和时间值之间有一个空格字符。
也许在您最喜欢的编辑器中查看空白可能会帮助您解决问题。
【参考方案1】:
实际上,标题部分中有十列。如果仅导入标题,则 Subject 列将用作行名称的标签。
因此,您要么必须包含实际数据的行名(将是第 10 列),要么必须从输入文件中排除 主题。
出于验证目的,我刚刚从标题部分删除了 Subject 术语,它被成功读取为具有 3 个观察值和 9 个变量的数据框。
structure(list(ID = c(1L, 1L, 1L), Span = 2:4, Accuracy = c(1L, 1L, 1L), Accuracy..SD. = c(0L, 0L, 0L), Avg.RT = c(3206, 2485.5, 3513), Avg.RT..SD. = c(1702.713, 12.021, 0), Median.RT = c(3206, 2485.5, 3513), Number.of.Trials = c(2L, 2L, 1L), Date.Time = structure(c(1L, 1L, 1L), .Label = "08/23/2016 12:54:13", class = "factor")), .Names = c("ID", "Span", "Accuracy", "Accuracy..SD.", "Avg.RT", "Avg.RT..SD.", "Median.RT", "Number.of.Trials", "Date.Time"), class = "data.frame", row.names = c(NA, -3L))
【讨论】:
以上是关于在R中读取txt文件时出错的主要内容,如果未能解决你的问题,请参考以下文章