Вырежьте число c в петле - PullRequest
0 голосов
/ 03 марта 2020

Я борюсь с циклическим просмотром списка числовых имен c col, используя cut () и group_by (), чтобы суммировать 'e' по бинам других переменных. Приведенный ниже код выдает ошибку «x» должно быть цифрой c »в отношении шага изменения.

library(dplyr)
df <- data.frame(a = round(rnorm(50, 1,1.5),2),
                 b = round(rnorm(50, 1,1.5),2),
                 c = round(rnorm(50, 1,1.5),2),
                 d = round(rnorm(50, 1,1.5),2),
                 e = round(rnorm(50, 1,1.5),2))
nums <- colnames(df[,1:4])
for (i in nums) {
  summary <- df %>%
    mutate(z = cut(i, seq(min(i),max(i),length.out = 10), include.lowest = TRUE)) #%>%
    group_by(z) %>%
    summarise(e = sum(e))
}

Спасибо!

1 Ответ

0 голосов
/ 03 марта 2020

попробуйте так

x <- letters[1:4] %>% 
  purrr::set_names()

sum_grp_fun <- function(x){
  df %>% 
    mutate(grp = cut(.data[[x]],
                     seq(min(.data[[x]]),max(.data[[x]]),length.out = 10),
                     include.lowest = TRUE)) %>% 
    group_by(grp) %>% 
    summarise(e = sum(e))
}

map(.x = x, ~ sum_grp_fun(.x))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...