首页 > 解决方案 > 使用 dplyr 改变多列中的数据

问题描述

这是对较早问题(在 R 中一次性执行多个列的转换)的更新问题;然后建议的解决方案现在会引发错误(见下文)。

我有一个数据框,其中包含多个用于单词形式标签的列,如这个模拟示例中所示:

df <- data.frame(
    w1 = c("NN1", "NN0", "AJ0", "AJC", "NP0", "VVZ"),
    w2 = c("NN0", "NN2", "AJC", "NN0", "VBN", "NN1"),
    w3 = c("AJ0", "NN2", "NP0", "VVG", "AJS", "NN1"),
    w4 = c("NN2", "NN2", "AJ0", "AJ0", "AJS", "VVD")
  )

我需要使用更广泛的描述对标签进行重新分类,例如单数名词的“名词”(标记为“NN1”)、复数名词(“NN2”)、专有名词(“NP0”)等。之前建议的一种解决方案是,基于dplyr

 df %>% mutate_all(funs(case_when(
  grepl("^N", .) ~ "noun",
  grepl("^V", .) ~ "verb",
  grepl("^A", .) ~ "adjective",
  TRUE           ~ "Other"
)))

它当时运作良好,但现在不再有效;它抛出这个错误:

Error in mutate_impl(.data, dots) : 
  Evaluation error: `as_dictionary()` is defunct as of rlang 0.3.0.
Please use `as_data_pronoun()` instead.

任何人都可以帮忙:需要做什么才能让代码再次工作?

标签: rdplyr

解决方案


推荐阅读