R: l oop с dplyr - PullRequest
       7

R: l oop с dplyr

0 голосов
/ 30 апреля 2020

У меня есть несколько объектов с именами depth_* Я хочу обобщить их следующим образом:

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

, что дает:

  avg sd med
1   1  0   1

Но я бы дал ссылку на запуск al oop поверх всех этих файлов, чтобы я мог получить гигантскую таблицу вроде:

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

Вы можете помочь? Спасибо!

М

1 Ответ

1 голос
/ 30 апреля 2020

Один из подходов заключается в использовании mget из базы R для составления списка ваших data.frame с.

Затем вы можете 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...