首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将函数应用于使用plyr分组的所有功能的r-高效方法

将函数应用于使用plyr分组的所有功能的r-高效方法
EN

Stack Overflow用户
提问于 2017-10-10 16:45:44
回答 1查看 42关注 0票数 1

df作为我们的测试数据框架:

代码语言:javascript
运行
复制
set.seed(1)
df <- data.frame(id = c(1,1,2,2,3,3,3),
                 var1 = round(runif(7)),
                 var2 = round(runif(7)),
                 var3 = round(runif(7)))
df

  id var1 var2 var3
1  1    0    1    1
2  1    0    1    0
3  2    1    0    1
4  2    1    0    1
5  3    0    0    0
6  3    1    1    1
7  3    1    0    1

我想对id进行总结,并总结如下所有的值:

代码语言:javascript
运行
复制
df %>% 
  group_by(id) %>% 
  summarise(sum_var_1 = sum(var1),
            sum_var_2 = sum(var2),
            sum_var_3 = sum(var3)) %>% 
  data.frame

  id sum_var_1 sum_var_2 sum_var_3
1  1         0         2         1
2  2         2         0         2
3  3         2         1         2

现在的问题是:是否有一种方法可以避免sum_var_2 = sum(var2) [...]步骤,并在summarise中使用类似公式之类的功能来完成它?由于有数百个特点,我想总结一下!

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-10 16:58:43

因为所有变量都以"var“开头,所以可以这样做。

代码语言:javascript
运行
复制
df %>% 
   group_by(id) %>% 
   summarise_at(vars(starts_with("var")), sum)

返回你的例子。

编辑:正如@jake评论的那样,summarise_all的工作做得更好,并且也不需要将变量名称标准化:

代码语言:javascript
运行
复制
df %>% 
   group_by(id) %>% 
   summarise_all(sum)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46671876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档