dplyr - 将包含单词的列名转换为字符

问题描述 投票:0回答:1

我想使用dplyr将以“feature”开头的列名转换为字符类型。我使用stackoverflow的答案尝试了以下和其他一些变体。任何帮助,将不胜感激。谢谢!

train %>% mutate_if(vars(starts_with("feature")), funs(as.character(.)))

train %>% mutate_if(vars(starts_with("feature")), funs(as.character(.)))

我正在尝试提高我对dplyr命令的使用。

r dplyr character names
1个回答
2
投票

你需要mutate_at

library(dplyr)
train %>% mutate_at(vars(starts_with("feature")), as.character)

正如@Gregor所提到的,mutate_if是基于列中的实际数据而不是名称来选择列的。

例如,

iris %>% mutate_if(is.numeric, sqrt)

因此,如果列中的数据仅为数字,那么它将计算平方根。

如果我们想将多个vars语句组合成一个,我们可以使用matches

merchants %>% mutate_at(vars(matches("_id|category_")), as.character)
© www.soinside.com 2019 - 2024. All rights reserved.