簡體   English   中英

R bigmemory 不會讀取大型 csv 文件

[英]R bigmemory won't read large csv file

我想在689.4 MB CSV使用加載read.big.matrix從R biganalytics包以類似的方式對暗角的bigmemory

小插圖代碼:

library(bigmemory)
library(biganalytics)
x <- read.big.matrix("airline.csv", type="integer", header=TRUE,
        backingfile="airline.bin",
        descriptorfile="airline.desc",
        extraCols="Age")

根據 42- 的評論,我在命令行cut -d, -f9,11,17,18,23 --complement 2008.csv > 2008cut.csv上使用 cut 刪除了因子變量

然后,我使用 sed sed -i 's/NA/0/g' 2008cut.csv刪除了數據中發現的任何 NA 值,即使使用這些預處理步驟,我sed -i 's/NA/0/g' 2008cut.csv收到相同的錯誤。

我的代碼:

#This works
x <- read.csv("~/Downloads/2008cut.csv",header=T)
dim(y)
#[1] 7009728      29
length(complete.cases(x))
#[1] 7009728

library(bigmemory)
library(biganalytics)
#This errors out
data <- read.big.matrix("~/Downloads/2008cut.csv", 
            type="integer", header=TRUE)

嘗試運行 read.big.matrix 時收到以下錯誤:

Warning: stack imbalance in '.Call', 31 then 32
Warning: stack imbalance in '{', 28 then 29
Warning: stack imbalance in '-', 23 then 24
Warning: stack imbalance in '-', 22 then 23
Warning: stack imbalance in '<-', 20 then 21
Error in big.matrix(nrow = numRows, ncol = createCols, type = type,
 dimnames = list(rowNames,  : 
    A big.matrix must have at least one row and one column

我發現其他人有這個問題,但他們有混合數據類似的問題,但沒有回應。 在我搜索的某個時候,郵件列表上的某個人詢問用戶是否可以運行類似x <- big.matrix(nrow=1000,ncol=10)來確保 bigmemory 正常工作。 能夠運行該代碼,並生成一個big.matrix。

任何指導將不勝感激!

軟件詳情:

  • 數據: 2008 年檔案
  • 回復:3.2.3
  • 操作系統:x86_64-pc-linux-gnu
  • 大內存:4.5.19
  • biganalytics:1.1.14

對於讀取大文件,我建議使用 R data.table包中的fread

使用絕對路徑:

absolutePath <- normalizePath("~/Downloads/2008cut.csv")

x <- read.big.matrix(absolutePath, type="integer", header=TRUE,
        backingfile="airline.bin",
        descriptorfile="airline.desc",
        extraCols="Age")

暫無
暫無

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

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