阅读使用bigmemory包丢失的数据中的R

问题描述:

我使用大型数据集我的研究(4.72GB),我发现在R“bigmemory”包,理应处理大型数据集(高达10GB的范围内)大csv文件。然而,当我使用read.big.matrix读取csv文件,我得到以下错误:阅读使用bigmemory包丢失的数据中的R

> x <- read.big.matrix("x.csv", type = "integer", header=TRUE, backingfile="file.bin", descriptorfile="file.desc") 

Error in read.big.matrix("x.csv", type = "integer", header = TRUE, 
: Dimension mismatch between header row and first data row. 

我认为这个问题是CSV文件不充分,在几个也就是说,它缺少值细胞。我试着删除header = TRUE,但是然后R放弃并重新启动会话。

有没有人有阅读使用read.big.matrix丢失的数据大的CSV文件的经验?

它不能直接解决您的问题,但你可能会发现一个包矿filematrix有用的。相关功能是fm.create.from.text.file

请让我知道它是否适合你的数据文件。

你有没有在https://cran.r-project.org/web/packages/bigmemory/bigmemory.pdf检查bigmemory PDF?

它清楚地描述了那里。

write.big.matrix(x, 'IrisData.txt', col.names=TRUE, row.names=TRUE) 
y <- read.big.matrix("IrisData.txt", header=TRUE, has.row.names=TRUE) 

# The following would fail with a dimension mismatch: 
if (FALSE) y <- read.big.matrix("IrisData.txt", header=TRUE) 

基本上,错误意味着在CSV文件中有一列有行名称。如果你不通过has.row.names=TRUE,bigmemory会将行名称视为一个单独的列,如果没有标题,则会出现不匹配。

我个人认为data.table包处理大型数据集的情况下更加有用,因人而异

+0

但data.table不能处理的数据集比内存大。 – skan