我想知道在使用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并手动删除标题行是不现实的。
谢谢!
答案 0 :(得分:0)
实际上,标题部分中列出了十列。如果仅导入标题,则主题列将用作行名称的标签。
因此,您必须包含实际数据的行名称(这将是第10列),或者您必须从输入文件中排除主题。
出于验证目的,我刚刚从标题部分删除了主题字词,并且已成功读取为包含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))