首页 > 解决方案 > 替换包含特定子字符串的变量

问题描述

我正在尝试整理包含一列字符串的数据集。大多数字符串是同一个词的排列(例如“banana_test”、“banana2”等)。我想用原始单词替换所有这些排列,即“香蕉”。

我尝试使用 dplyr 包中的“包含”命令来执行此操作。

fruit <- c("apple", "pear", "banana", "pear", "apple", "bad banana")
replace(fruit, contains("banana"), "banana")

我没有用“香蕉”替换“坏香蕉”,而是收到以下错误消息: 错误:没有注册 tidyselect 变量

我能做些什么来解决这个问题?

标签: rdplyr

解决方案


contains()函数 from是一个选择助手,dplyr实际上来自 tidyeselect now-a-days(请参阅 参考资料?select_helpers)。它旨在用于查找列名,而不是通用字符串匹配。tidyverse 中更好的选择可能str_which来自stringr

replace(fruit, str_which(fruit, "banana"), "banana")

推荐阅读