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

dplyr-将包含单词的列名转换为字符,r,dplyr,character,names,R,Dplyr,Character,Names,我想使用dplyr将以单词“feature”开头的列名转换为字符类型。我使用stackoverflow的答案尝试了以下内容和其他一些变体。任何帮助都将不胜感激。谢谢 train %>% mutate_if(vars(starts_with("feature")), funs(as.character(.))) train %>% mutate_if(vars(starts_with("feature")), funs(as.character(.))) 我正在努力改进dplyr命

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

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

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

我正在努力改进dplyr命令的使用

您需要在处进行变异

library(dplyr)
train %>% mutate_at(vars(starts_with("feature")), as.character)
正如@Gregor所提到的,
mutate_if
是根据列中的实际数据而不是名称来选择列

比如说,

iris %>% mutate_if(is.numeric, sqrt)
因此,如果列中的数据仅为数字,则它将计算平方根

如果我们想将多个
变量
语句组合成一个,我们可以使用
匹配项

merchants %>% mutate_at(vars(matches("_id|category_")), as.character)

您需要在处进行变异

library(dplyr)
train %>% mutate_at(vars(starts_with("feature")), as.character)
正如@Gregor所提到的,
mutate_if
是根据列中的实际数据而不是名称来选择列

比如说,

iris %>% mutate_if(is.numeric, sqrt)
因此,如果列中的数据仅为数字,则它将计算平方根

如果我们想将多个
变量
语句组合成一个,我们可以使用
匹配项

merchants %>% mutate_at(vars(matches("_id|category_")), as.character)

尝试
mutate\u at
train%>%mutate\u at(vars(以(“feature”)开头)、as.character)
,现在,如果不需要任何其他参数,就不需要
funs()
mutate\u at(vars(以(“feature”)开头),as.character)
应该可以。(作为解释,当条件取决于对列中数据的测试时,请使用
mutate\u if
vars()
返回特定列,并且
mutate\u at
对特定列有效)。感谢您的回答。Ronak的答案对我很有用。你介意把这个解决方案作为一个答案发布,这样我就可以标记它已经解决了吗?@user13874更新了答案。试试
mutate\u at
train%>%mutate\u at(vars(以(“feature”)开头),as.character)
,现在,如果你不需要任何其他参数,就不需要
funs()
mutate\u at(vars(以(“feature”)开头),as.character)
应该可以。(作为解释,当条件取决于对列中数据的测试时,请使用
mutate\u if
vars()
返回特定列,并且
mutate\u at
对特定列有效)。感谢您的回答。Ronak的答案对我很有用。你介意把这个解决方案作为一个答案发布出来,这样我就可以标记这个问题已经解决了吗?@user13874更新了答案。