1

我正在处理大型数据集。我可以使用read.table命令读取其中的一些,但使用参数fill=TRUE,因为此类数据集有一些代表 NA 的空白。

现在,我有一个高达 35 Gb 的数据库,所以通常的read.table命令是无用的,所以我在包中找到了 read.big.matrix 函数bigmemory。问题是它返回以下错误:

“标题行和第一个数据行之间的维度不匹配。” 我认为这是因为它没有将空白读取为 NA。

你知道我该如何解决这个问题吗?谢谢。

4

2 回答 2

0

关于这个老问题,我最近发现file这样的问题:

somethin rowname1 rowname2
colname1 value1.1 value1.2
colname2 value2.1 value2.2

如果您使用header = TRUEandhas.row.names = TRUE参数在 R 中加载文件read.big.matrix,它将不起作用,因为该函数期望该somethin字段实际上不存在。由于您没有提供确切的命令,我不知道这是否是这里的问题,但基本上该函数会检查标题是否与实际数据的第一行具有相同数量的字段,但是当您指定第一个列作为行名,则第一行数据少一个字段,并且标题应与此字段数匹配。somethin您可以使用 linux 命令删除该字段,例如cat <(head -1 file | cut -d' ' -f2-) <(tail -n+2 file) > newFile

于 2020-02-11T21:04:33.300 回答
0

我也有这个问题。我终于找到了解决方案,使用head = FALSEread.big.matrix 函数。这对我有用,但结果 big.matrix 的第一行对所有列都有 NA,因为它无法将 colnames 转换为整数类型(如果您选择整数作为 big.matrix 的类型)。

于 2018-01-10T20:33:51.837 回答