[英]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.