【发布时间】:2018-09-29 11:48:07
【问题描述】:
我正在尝试
dplyr mutate using variable columns & dplyr - mutate: use dynamic variable names
在 mutate 中使用动态名称。我要做的是按最小标准偏差的组对列数据进行规范化。每列都有不同的最小标准差
例如(为方便起见,我省略了循环和映射语句)
require(dplyr)
require(magrittr)
data(iris)
iris <- tbl_df(iris)
minsd <- c('Sepal.Length' = 0.8)
varname <- 'Sepal.Length'
iris %>% group_by(Species) %>% mutate(!!varname := mean(pluck(iris,varname),na.rm=T)/max(sd(pluck(iris,varname)),minsd[varname]))
我按照参考答案的建议进行了动态分配和变量选择。但是 group_by() 不被尊重,至少对我来说,这是在这里使用 dplyr 的主要好处
想要的答案是由
iris %>% group_by(Species) %>% mutate(!!varname := mean(Sepal.Length,na.rm=T)/max(sd(Sepal.Length),minsd[varname]))
有没有办法解决这个问题?
【问题讨论】: