Я не знаю, как разделить динамические переменные на группы внутри цикла for.
df
- это фрейм данных, содержащий clm_april
- clm_sept
переменные, которые равны double
. Также я хотел бы присвоить новым столбцам другие имена.
Группы, которые разные для каждого месяца, выглядят так:
> groups_april
[1] "0" "500" "1000" "1500" "2000" "3500"
[7] "4500" "5000" "9500" "2000000"
Следующее не работает:
vector <- c("april", "may", "june", "july", "aug", "sept")
for (i in vector) {
varname <- paste0("clm_", i)
df <- df %>%
mutate_(.dots =
cut(list(varname),
breaks = groups[i],
include.lowest = T,
dig.lab = 10))
}
Я также пробовал:
for (i in vector) {
varname <- paste0("clm_", i)
df <- df %>%
mutate_(.dots = interp(~cut(list(varname),
breaks = groups[i],
include.lowest = T,
dig.lab = 10, varname=as.name(varname))))
}
R выдает следующую ошибку:
Error in mutate_impl(.data, dots) :
Evaluation error: 'x' must be numeric.
Вы можете помочь мне решить эту проблему?
РЕДАКТИРОВАТЬ:
# A tibble: 10 x 6
clm_april clm_may clm_june clm_july clm_aug clm_sept
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 0 0 0 0 689 0
2 2000 0 1000 1000 1000 0
3 5000 1000 1000 1000 1500 1518
4 1000 1069 1100 1200 2019 2000
5 679 689 9000 10000 36681 2000
6 800 1000 1000 657 1815 2500
breaks
в функция вырезания различна для каждого столбца (clm_april, clm_may ...). Я могу идти месяц за месяцем и вносить изменения (df %>% mutate(clm_new_x = cut(clm_x, breaks = group_x...))
), но я хочу сделать код короче и написать более простой код, который будет проходить все месяцы, используя цикл for. - person Luka   schedule 28.02.2018