2017-05-19 37 views
1

這裏是我的代碼錯誤.subset2(X,J):下標越界R中

colClasses <- c("integer", rep("factor", 2140)) 

    > train_categorical <- fread(file.path(data_dir, "train_categorical.csv"), 
data.table=FALSE, na.strings="", showProgress=TRUE , colClasses=colClasses,drop="Id") 

Read 1183747 rows and 2140 (of 2141) columns from 2.494 GB file in 00:07:35 
    Error in .subset2(x, j) : subscript out of bounds 

我認爲這是關於colClasses但我還挺新的,以R,無法管理到讓它工作。

我該怎麼辦?請幫助,謝謝。

+0

也許你可以使用stringsAsFactors = TRUE而不是colClasses。這就是fread(file.path(data_dir,「train_categorical.csv」), data.table = FALSE,na.strings =「」,showProgress = TRUE,stringsAsFactors = TRUE,drop =「Id」)'。 – lmo

+0

你也試過用colClasses < - rep(「factor」,2140)'?因爲'colClasses'-矢量的長度比正在讀取的列的長度更長(因爲你刪除了一列) – Jaap

+0

也與此問題有關我猜:https://github.com/Rdatatable/data.table/問題/ 1426 – Jaap

回答

1

結果與最近的data.table更新我們不能同時使用colClass和dropId。

test_categorical <- fread(file.path(data_dir, "test_categorical.csv"), data.table=FALSE, 
          na.strings="", showProgress=TRUE,colClasses=colClasses) 

test_categorical$Id <- NULL 

這對我有效。