簡體   English   中英

使用R中的bigmemory包讀取缺少數據的大型CSV文件

[英]Reading large csv file with missing data using bigmemory package in R

我正在使用大型數據集進行研究(4.72GB),我發現R中的“ bigmemory”軟件包可以處理大型數據集(最大10GB的范圍)。 但是,當我使用read.big.matrix讀取csv文件時,出現以下錯誤:

> 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文件未滿,即,它缺少幾個單元格中的值。 我嘗試刪除標頭= 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包對於處理大型數據集案例YMMV更有用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM