相关疑难解决方法(0)

聚合时动态添加列名到data.table

我知道我们可以在通过引用创建列时动态添加列名称(使用:=),如下所述:Data.table 中的动态列名称

但是,我希望在聚合时动态添加列名称。你能帮忙吗?

test_dtb <- data.table(a = sample(1:100, 100), b = sample(1:100, 100), id = rep(1:10, 10))
m = "blah"
test_dtb[ , list((m) = mean(b)), by = id]
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

Error: unexpected '=' in "test_dtb[ , list((m) =
Run Code Online (Sandbox Code Playgroud)

r data.table

3
推荐指数
1
解决办法
1150
查看次数

如何将新摘要列的名称传递给函数中的data.table?

假设我想创建一个从R中的data.table计算摘要数据集的函数,我希望能够以编程方式传递新计算变量的名称.

例如:

library(data.table)

# generate some fake data
set.seed(919)
dt <- data.table(x = rnorm(50), by.var = rep(c("a", "b"), 25))
dt[, list(group.means = mean(x)), by = "by.var"]  # This is what I want

# But I want to do in a function, so I can do it repeatedly:
groupMeans <- function(out.var, by.var, dat = dt) {
  return(dat[, list(out.var = mean(x)), by = by.var])  # doesn't work
}

groupMeans("group.means", "by.var")  # out.var should be "group.means"
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

r data.table

2
推荐指数
1
解决办法
94
查看次数

标签 统计

data.table ×2

r ×2