gpt4 book ai didi

r - dplyr::rename() 如果满足列内容的条件

转载 作者:行者123 更新时间:2023-12-02 18:50:58 24 4
gpt4 key购买 nike

假设我想根据列的内容包含特定值的条件来重命名列。

例如,如果iris$Species包含“virginica”,则将Species重命名为flower.name,否则保留名称为物种

此代码有效:

library(dplyr)
iris <- if("virginica" %in% iris$Species){
rename(iris, flower.name = Species)
}
iris %>% names

但我希望他们是一种更优雅的 dplyr 方式,可以使用现有函数之一(例如 rename_if())来执行此操作?

最佳答案

一种选择可能是:

iris %>%
rename_with(~ "Flower.Name",
.cols = Species & where(~ any(. %in% "virginica")))

Sepal.Length Sepal.Width Petal.Length Petal.Width Flower.Name
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
7 4.6 3.4 1.4 0.3 setosa
8 5.0 3.4 1.5 0.2 setosa
9 4.4 2.9 1.4 0.2 setosa
10 4.9 3.1 1.5 0.1 setosa

关于r - dplyr::rename() 如果满足列内容的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66787294/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com