【问题标题】:dplyr - convert column names containing words to characterdplyr - 将包含单词的列名转换为字符
【发布时间】:2019-03-19 04:03:57
【问题描述】:

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

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

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

我正在尝试改进我对 dplyr 命令的使用。

【问题讨论】:

  • 试试mutate_attrain %>% mutate_at(vars(starts_with("feature")), as.character)
  • 而且,如今,如果您不需要任何其他参数,则不需要 funs()mutate_at(vars(starts_with("feature")), as.character) 应该没问题。 (作为解释,当条件取决于关于列中数据的测试时,请使用mutate_ifvars() 返回特定列,mutate_at 适用于特定列)。
  • 感谢您的回答。 Ronak 的回答对我有用。
  • 您介意将解决方案作为答案发布,以便我可以标记为已解决吗?
  • @user13874 更新了答案。

标签: r dplyr character names


【解决方案1】:

你需要 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)

【讨论】:

    猜你喜欢
    • 2021-02-23
    • 1970-01-01
    • 2020-08-19
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-01
    • 2018-07-31
    相关资源
    最近更新 更多