我正在尝试
dplyr mutate using variable columns&dplyr - mutate: use dynamic variable names
在mutate中使用动态名称 . 我想要做的是按照最小标准偏差的组对列数据进行标准化 . 每列具有不同的最小标准偏差
例如(为方便起见,我省略了循环和 Map 语句)
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]))
有没有解决的办法?
1 回答
我实际上对
pluck
了解不多,所以我不知道出了什么问题,但我会这样做,这有效:如果这不是你想要的,请告诉我 .