如何将聚合与列名列表一起使用
发布时间:2020-12-13 20:45:53 所属栏目:百科 来源:网络整理
导读:如何通过传递条件和值列表来汇总函数中的聚合? # This works fine:x - data.frame(cond1 = sample(letters[1:3],500,replace=TRUE),cond2 = sample(LETTERS[1:7],replace = TRUE),cond3 = sample(LETTERS[1:4],value1 = rnorm(500),value2 = rnorm(500))agg
如何通过传递条件和值列表来汇总函数中的聚合?
# This works fine: x <- data.frame(cond1 = sample(letters[1:3],500,replace=TRUE),cond2 = sample(LETTERS[1:7],replace = TRUE),cond3 = sample(LETTERS[1:4],value1 = rnorm(500),value2 = rnorm(500)) aggregate(cbind(value1,value2) ~ cond1 + cond2,data = x,FUN=sum) 需要创建列名列表:(显示3个选项)然后调用函数: c1 <- c("cond1","cond2","cond3"); v1 <- c("value1","value2") c1 <- c("cond2","cond3"); v1 <- c("value2") c1 <- c("cond3"); v1 <- c("value1") aggregate(cbind(v1) ~ c1,FUN=sum) 我已经回顾了许多替代方案,但还没有发现这种抽象的关键.
您可以使用替代接口进行聚合,但不使用公式:
c1 <- c("cond1","cond3") v1 <- c("value1","value2") aggregate(x[v1],by=x[c1],FUN=sum) cond1 cond2 cond3 value1 value2 1 a A A -3.3025839 -0.98304649 2 b A A 0.6326985 -3.08677485 3 c A A 3.6007853 2.23962265 4 a B A -0.5247620 -0.94644740 5 b B A 0.9242562 2.48268452 6 c B A 6.9215712 0.31512645 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |