2016-11-21 146 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] 
相关问题