【发布时间】:2019-05-18 05:41:27
【问题描述】:
我正在尝试一次重命名数据中的值,而不是逐项进行。
现在我正在使用此代码来执行我的更改:
INV$Classification[INV$Classification=="lay net"] <- "Illegal Lay Net"
我的数据是 INV,我的列是分类。我想找到“lay net”一词的所有实例并将它们替换为“Illegal Lay Net”。我现在正在手动执行此操作,我最终可以在 excel 中执行此操作。有没有更有效的方法来做到这一点?
例如,我有以下条目:POSSIBLE ILLEGAL LAY NET 或 Lay Nets Violation,仅使用“lay net”查找无法获取这些条目,因此不会切换,因为此代码非常具体。
【问题讨论】:
-
您要使用什么软件?这听起来像是一个简单的查找和替换,Knuth-Morris-Pratt algorithm 非常擅长(用于查找匹配项)。替换文本将非常依赖于您使用的技术(使用 Ctrl+F 并使用 Excel 中的替换选项 - 如果那是您的平台,那么这个问题属于 SuperUser 并且绝对是重复的)。
-
我正在使用 RStudio,我希望它是一个非常简单的查找和替换,但没有找到任何似乎可以工作的代码。
-
拜托,你需要用高度相关的东西来标记你的帖子。
-
看起来您也可能遇到区分大小写的问题(即“AbcD”与“aBCd”的处理方式不同)。您通常可以通过将字符串先搜索大写或小写函数来解决此问题,例如,如果您要搜索“abcd”,则执行
UPPER(MyVariable).Contains(UPPER(MySearch))(伪代码)。 -
对不起,这是我第一次发帖。我不确定我是否理解,这与在 stringr 中创建字符串是分开的吗?
标签: r rstudio data-manipulation data-cleaning renaming