首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在for循环r中的dplyr-群

在for循环r中的dplyr-群
EN

Stack Overflow用户
提问于 2017-11-18 15:14:41
回答 1查看 13.4K关注 0票数 1

我试图在for循环中使用group by。我想让葫芦循环每一列,然后我可以执行一个总结行动。我试图在groupby中使用colname(Dfi),但是由于colname返回时带有引号,所以该方法不起作用。

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2017-11-18 15:24:43

如果您还没有完全开始使用for循环,那么最简单的方法可能是使用dplyr::summarise_all或dplyr::sumarise_at --这取决于您的需求。

代码语言:javascript
复制
df <- tibble(
  var1 = c(rep("a", 5), rep("b", 5)),
  var2 = rnorm(10),
  var3 = rnorm(10)
)

df %>% 
  group_by(var1) %>% 
  summarise_all(funs(mean = mean))

# A tibble: 2 x 3
   var1  var2_mean  var3_mean
  <chr>      <dbl>      <dbl>
1     a -0.2715518 -0.6146812
2     b  0.1502118 -0.2061952

更新:

对不起,我之前误解了这个问题。您希望遍历"group_by“变量,而不是响应变量。

你可以用整齐的年代做这件事。下面是一个示例:

代码语言:javascript
复制
df <- tibble(
  var1 = c(rep("a", 5), rep("b", 5)),
  var2 = c(rep("c", 3), rep("d", 7)),
  var3 = rnorm(10)
)

groups <- c(quo(var1), quo(var2))  # Create a quoture

for (i in seq_along(groups)) {
  df %>% 
    group_by(!!groups[[i]]) %>% # Unquote with !!
    summarise(mean = mean(var3)) %>% 
    print()
}

# A tibble: 2 x 2
   var1       mean
  <chr>      <dbl>
1     a -0.3451196
2     b  0.4117763
# A tibble: 2 x 2
   var2       mean
  <chr>      <dbl>
1     c -0.2618434
2     d  0.1598305
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47367579

复制
相关文章

相似问题

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