如何解决如果变量名称出现在列表中,则进行变异
我想使用 dplyr 将变量子集除以 iqr。我愿意接受使用与我以前尝试过的方法不同的方法的想法,即 mutate_if
和 %in%
的组合。我想引用列表 bin
而不是按位置索引数据框。感谢您的任何想法!
contin <- c("age","ct")
data %>%
mutate_if(%in% contin,function(x) x/iqr(x))
解决方法
你应该使用:
data %>%
mutate(across(all_of(contin),~.x/IQR(.x)))
工作示例:
data <- head(iris)
contin <- c("Sepal.Length","Sepal.Width")
data %>%
mutate(across(all_of(contin),~.x/IQR(.x)))
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 15.69231 7.777778 1.4 0.2 setosa
2 15.07692 6.666667 1.4 0.2 setosa
3 14.46154 7.111111 1.3 0.2 setosa
4 14.15385 6.888889 1.5 0.2 setosa
5 15.38462 8.000000 1.4 0.2 setosa
6 16.61538 8.666667 1.7 0.4 setosa
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。