具有未知数量的非标准类型的data.table列的算术

时间:2017-01-29 06:43:52

标签: r data.table

我想通过添加名称与特定表达式匹配的列来创建新的data.table列。我不知道我会添加多少列。问题是,列是类'整数64'所以rowSums(.)似乎不起作用。

例如,这适用于两个(已知的)integer64列:

DT <- data.table(a=as.integer64(1:4),b=as.integer64(5:8),c=as.integer64(9:12))
DT[, y := .SD[, 1] + .SD[, 2], .SDcols=c("a", "b")]

这适用于我的情况,任意数量的列,但如果它们的类是integer64则不行:

DT[, y := rowSums(.SD), .SDcols=c("a", "b")]  # gives incomprehensible data if class of a and b is integer64

我可以解决的一种方法是事先定义列y的数据类型。有更简单的方法吗?我可能会在这里遗漏一些简单的事情,如果情况如此,我会道歉。

0 个答案:

没有答案