R-код, который будет группировать по нескольким столбцам и суммировать, когда элемент данных появится в группе столбцов - PullRequest
0 голосов
/ 08 апреля 2019

Как можно суммировать количество наборов конкретных факторов, которые появляются в группе столбцов?

Я работаю над обобщением набора конкретных факторов, которые появляются в группе столбцов в моем наборе данных (в частности, коды медицинских процедур, которые могут отображаться в 15 различных столбцах процедур). Я хотел бы сгруппировать столбцы и затем суммировать каждый раз, когда один из заданного списка кодов появляется в любом из этих столбцов. Это может означать, что указанные коды не являются взаимоисключающими для одной записи данных, в строке появятся совпадения с несколькими кодами процедур, которые я ищу.

Я использовал следующую пустышку для запуска быстрого теста. Я хочу суммировать количество точек данных «b» и «e» в столбцах «Y» и «Z». Ясно, что мое резюме не сработает так, как я хочу, но это все, что я получил.

library(dplyr)

Mydata <- data.frame(W = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                     X = c(20, 30, 45, 54, 65, 78, 97, 102, 123, 156),
                     Y = c("a","b","c","d","e","e","f","f","f","g"),
                     Z = c("c","a","b","b","c","d","e","e","g","h"))

 test_group <- Mydata %>%   summarize_at(c(z, w), n = n())

Ожидаемыми результатами будет таблица со следующим:

Specified_Data  n
             b  3
             e  4

1 Ответ

0 голосов
/ 09 апреля 2019

Другой пользователь опубликовал ответ, но похоже, что его сняли.Тем не менее, это работает, так что я решил добавить код. Работает с dplyr.

Mydata %>%
  select(Y, Z) %>%
  gather(var, val) %>%
  filter(val %in% c("b", "e")) %>%
  count(val)

# A tibble: 2 x 2
  val       n
  <chr> <int>
1 b         3
2 e         4

После результата консоли появляется предупреждающее сообщение, но, похоже, оно не оказывает никакого влияния.на строке кода работает.Сообщение следующее:

Warning message:
attributes are not identical across measure variables;
they will be dropped 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...