我正在使用大型数据集。我可以使用read.table
命令读取其中一些但由于此类数据集使用参数fill=TRUE
,因此有一些代表NA的空白。
现在,我有一个高达35 Gb的数据库,因此通常的read.table
命令是无用的,所以我在bigmemory
包中找到了read.big.matrix函数。问题是它返回以下错误:
"标题行和第一个数据行之间的维度不匹配。"我认为这是因为它不是像NA那样读取空白。
您知道我该如何解决这个问题?感谢。
答案 0 :(得分:0)
我也有这个问题。我最终找到了解决方案,使用带有read.big.matrix函数的head = FALSE
。这对我有用,但第一行结果big.matrix对所有列都有NA,因为它不能将colnames转换为整数类型(如果你选择整数作为big.matrix的类型)。
答案 1 :(得分:0)
关于这个老问题,我最近发现对于这样的file
:
somethin rowname1 rowname2
colname1 value1.1 value1.2
colname2 value2.1 value2.2
如果您使用header = TRUE
和has.row.names = TRUE
参数将read.big.matrix
加载到R中,则该文件将无法正常工作,因为该函数期望somethin
字段实际不存在。由于您没有提供确切的命令,因此我不知道这是否是问题所在,但是基本上该函数会检查标题与实际数据的第一行具有相同数量的字段,但是当您指定第一行时列作为行名,则数据的第一行少一个字段,并且标题应与此字段数匹配。您可以使用somethin
cat <(head -1 file | cut -d' ' -f2-) <(tail -n+2 file) > newFile
字段