相关疑难解决方法(0)

在`data.table`中使用动态列名

我想计算data.table中每个列的平均值,按另一列分组.我的问题类似于关于SO的另外两个问题(一个两个),但我不能将这些问题应用于我的问题.

这是一个例子:

library(data.table)
dtb <- fread(input = "condition,var1,var2,var3
      one,100,1000,10000
      one,101,1001,10001
      one,102,1002,10002
      two,103,1003,10003
      two,104,1004,10004
      two,105,1005,10005
      three,106,1006,10006
      three,107,1007,10007
      three,108,1008,10008
      four,109,1009,10009
      four,110,1010,10010")

dtb
#    condition var1 var2  var3
# 1:       one  100 1000 10000
# 2:       one  101 1001 10001
# 3:       one  102 1002 10002
# 4:       two  103 1003 10003
# 5:       two  104 1004 10004
# 6:       two  105 1005 10005
# 7:     three  106 1006 10006
# 8:     three  107 1007 10007
# 9:     three …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

R - 如何根据多个因子在不同的data.table列上运行average和max并返回原始的colnames

我正在将我的R代码从data.frame+ 更改plyrdata.tables,因为我需要一种更快,更有内存效率的方法来处理大数据集.不幸的是,我的R技能非常有限,而且我整天都遇到了问题.如果这里的SO专家可以启发,将不胜感激.

我的目标

  • 基于2个函数(平均值和最大值)在我的data.table中聚合行在所选列上运行(列名通过向量传递),而按列分组也通过向量传递.
  • 生成的DT应包含原始列名称.
  • 应该不会是DT的不必要的复制,以节省内存

我的测试代码

DT = data.table( a=LETTERS[c(1,1,1:4)],b=4:9, c=3:8, d = rnorm(6), 
                 e=LETTERS[c(rep(25,3),rep(26,3))], key="a" )

GrpVar1 <- "a"
GrpVar2 <- "e"
VarToMax <- "b"
VarToAve <- c( "c", "d")
Run Code Online (Sandbox Code Playgroud)

我尝试了什么,但没有为我工作

DT[, list( b=max( b ), c=mean(c), d=mean(d) ), by=c( GrpVar1, GrpVar2 ) ]  
# Hard-code col name - not what I want

DT[, list( max( get(VarToMax) ), mean( get(VarToAve) )), by=c( GrpVar1, GrpVar2 ) ]  
# Col names become …
Run Code Online (Sandbox Code Playgroud)

aggregate r data.table

11
推荐指数
2
解决办法
1753
查看次数

如何仅从数据表中选择数字列

为什么这不起作用data.table

它适用于data.frame.有没有办法用数据表做到这一点?

x <- data.table(v1=1:20,v2=1:20,v3=1:20,v4=letters[1:20])
y <- x[,sapply(x,is.numeric)]
Run Code Online (Sandbox Code Playgroud)

返回:

v1    v2    v3    v4
TRUE  TRUE  TRUE FALSE
Run Code Online (Sandbox Code Playgroud)

r data.table

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

标签 统计

data.table ×3

r ×3

aggregate ×1