【发布时间】:2021-07-06 12:20:31
【问题描述】:
我必须在 R 中收集数据,这些数据以 xls 格式提供给我,但是当我用 Excel 打开它时,它说扩展名和格式不匹配,文件建议我应该将其另存为.txt 文件。
我必须使用的文件通常包含 3 个部分,其中包含不同的表,它们具有不同的大小和列名。这些部分由方括号之间的标题宣布。这是我文件的simplified version。
我只对名为“[DATA]”的第三部分感兴趣。到目前为止,我已手动将其保存为 xlsx 文件,并以我的方式使用我感兴趣的数据,即使用 read_excel。在阅读了 R 中的整张表格后,我收集了标题“[DATA]”所在的行(它可能因文件而异,我无法像 readLines 中那样选择行号),然后我可以选择下面的表格列名(T、时间、张力等)作为我的新数据框的列名。我希望能够从 txt 文件开始做类似的事情,因为我有很多文件要处理,而且它们的格式完全相同。
我尝试了几个函数来将文件读取为.txt,比如
1A = data.table::fread(file, header = F, fill=F, sep = '\t')
2)A = read.delim(file)
3)A = data.frame(readLines(file))
4)A = read.table(file)
-
它从 SETUP 中保存第一个表并提前停止,并显示此错误消息“在第 25 行提前停止。预期有 24 个字段但找到了 1 个。考虑 fill=TRUE 和 comment.char=。第一个丢弃的非空行:>" .如果我输入 fill = TRUE,我会得到与 3 相同的结果。
-
它将所有单元格组成一个大列,逐行逐个单元格。从那里重新排列表格中的数据变得很困难。
-
它再次构成一个大列,但文件的每一行都是数据框中的一个单元格,单元格的内容是所有数字的字符串,由 \t 分隔。第 8 行示例:experiment1\group1\t0\t7200\t0.001\t"
-
我收到此错误消息:扫描错误(文件 = 文件,内容 = 内容,sep = sep,quote = quote,dec = dec,: 第 4 行没有 2 个元素
我不知道这些函数中的哪一个最适合这项任务。
注意:错误消息中显示的数字可能与我在示例中得到的不同,但我什至没有收到示例中的错误消息(当我制作它时,Excel 要求我放一个撇号在单元格中,因此“减号”不会被视为公式,所以我这样做了。然后我将文件保存在 txt 和 xls 中,甚至将 xls 扩展名添加到 txt 文件中以创建扩展名的不连贯性,如我的原始文件。它在任何情况下都有效。)
感谢您的帮助!
【问题讨论】: