相关疑难解决方法(0)

如何将相同的函数应用于data.table中的每个指定列

我有一个data.table,我希望在某些列上执行相同的操作.这些列的名称以字符向量给出.在这个特定的例子中,我想将所有这些列乘以-1.

一些玩具数据和指定相关列的向量:

library(data.table)
dt <- data.table(a = 1:3, b = 1:3, d = 1:3)
cols <- c("a", "b")
Run Code Online (Sandbox Code Playgroud)

现在我这样做,循环遍历字符向量:

for (col in 1:length(cols)) {
   dt[ , eval(parse(text = paste0(cols[col], ":=-1*", cols[col])))]
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在没有for循环的情况下直接执行此操作?

r data.table

70
推荐指数
3
解决办法
4万
查看次数

将多个函数应用于data.table中的多个列

我正在尝试将多个函数应用于a的多个列data.table.例:

DT <- data.table("a"=1:5,
                 "b"=2:6,
                 "c"=3:7)
Run Code Online (Sandbox Code Playgroud)

比方说,我想要得到的平均值和列的中位数ab.这有效:

stats <- DT[,.(mean_a=mean(a),
               median_a=median(a),
               mean_b=mean(b),
               median_b=median(b))]
Run Code Online (Sandbox Code Playgroud)

但这太重复了.有没有一种很好的方法来使用.SDcols和获得类似的结果lapply

r data.table

27
推荐指数
3
解决办法
7238
查看次数

标签 统计

data.table ×2

r ×2