根据其他列值更新R中data.table的列值

时间:2016-11-21 02:28:41

标签: r data.table

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。

我已尝试将值“0101 ...”的一列“响应”(字符类型)作为上述列的串联值1和0的结果。

在此程序之后我看到R studio的异常行为,无法进入火车等。

可能有问题?

1 个答案:

答案 0 :(得分:1)

我们可以在paste中指定.SDcols的列,在Data.table(paste0)的子集上使用do.call.SD,并分配(:=)创建“响应”#39;列。

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