2016-11-21 199 views
1
library(data.table) 

train <- fread(input = "../train.csv", header = TRUE, sep = ",", 
      stringsAsFactors = FALSE, data.table = TRUE) 

train$Response <- "" #create new column with values "" 
train$Response <- paste(train[, 15:20, with = FALSE], collapse = "") 

RStudio console: 
> is.data.frame(train) 
[1] TRUE 
> is.data.table(train) 
[1] TRUE 

索引從15到20的列具有int類型的值= 1或0。根據另一列值更新R中data.table的列值

我已經嘗試做一列「響應」(字符類型)的值爲「0101 ...」作爲上述列的串聯值1和0的結果。

此過程中我看到[R工作室的異常行爲後,不能訪問,培訓等

或許真的錯了嗎?

+0

這並沒有什麼意義(因爲data.tables自然不會使用「$」 - 操作符)。如果'train'是一個data.table,那麼你應該編輯你的問題來構建一個例子來創建一個類似於你的用例的對象。 –

回答

1

我們可以在.SDcols指定列paste,在Data.table(.SD)的子集使用paste0do.call,並分配(:=)創建的「響應」列。

train[, Response := do.call(paste0, .SD), .SDcols = 15:20] 
相關問題