【发布时间】:2018-02-27 19:42:48
【问题描述】:
我不知道如何在 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
【问题讨论】:
-
尝试给出一段数据作为示例,通过使用 dput() 或 head() 并粘贴结果。
-
寻求帮助时,您应该包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出
-
我编辑了这个问题。无论如何,我想我已经包含了您需要的所有必要信息。如果您需要其他东西,请告诉我。谢谢`
-
df %>% mutate_all(cut, breaks = group, include.lowest = T, dig.lab = 10)? -
只有我一个人不明白这个问题吗??我觉得很傻:(
标签: r dplyr dynamic-function quosure