【问题标题】:R: loop with dplyrR:使用 dplyr 循环
【发布时间】:2023-03-21 03:06:02
【问题描述】:

我有多个名称为 depth_* 的对象 我想这样总结它们:

depth_PATH2 %>%
+   summarise(avg = mean(V3), sd = sd(V3), med = median(V3))

给出:

  avg sd med
1   1  0   1

但我会链接以在所有这些文件上运行一个循环,这样我就会得到一个巨大的表格,例如:

             avg sd med
depth_PATH2   1   0  1
depth_PGTH7   2   7  3
etc.

你能帮忙吗? 谢谢!

M

【问题讨论】:

标签: r loops dplyr


【解决方案1】:

一种方法是使用基础 R 中的 mget 来列出您的 data.frames。

然后你可以bind_rows把它们变成一个data.frame、group_by的对象,并进行汇总。

library(dplyr)
mget(ls(pattern="depth_")) %>%
  bind_rows(.id = "obj") %>%
  group_by(obj) %>%
  summarise(avg = mean(V3), sd = sd(V3), med = median(V3))
## A tibble: 3 x 4
#  obj       avg    sd   med
#  <chr>   <dbl> <dbl> <dbl>
#1 depth_a   2    0      2  
#2 depth_b   4.5  2.12   4.5
#3 depth_c   6    4.24   6  

样本数据

depth_a <- data.frame(A = c(1,2), V3 = c(2,2))
depth_b <- data.frame(A = c(1,2), V3 = c(6,3))
depth_c <- data.frame(A = c(1,2), V3 = c(9,3))

【讨论】:

  • 非常感谢 Ian,它运行良好,而且很容易记住啊!
猜你喜欢
  • 2021-10-02
  • 1970-01-01
  • 2017-01-09
  • 2020-10-06
  • 2015-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多