【发布时间】:2017-06-12 12:18:51
【问题描述】:
我在这里和其他地方环顾四周,发现了许多类似的问题,但没有一个能准确回答我的问题。我需要清理命名约定,特别是从特定列/变量而不是整个数据集中替换/删除某些单词和短语。我正在从 SPSS 迁移到 R,我在下面的 SPSS 中有一个执行此操作的代码示例,但我不确定如何在 R 中执行此操作。
EG:
"Acadia Parish" --> "Acadia"(删除 Parish 和 Parish 之前的空格)
"Fifth District" --> "Fifth"(删除 District 和 District 之前的空格)
SPSS 语法:
COMPUTE county=REPLACE(county,' Parish','').
在 32,000 个案例的列中只有少数这个问题的实例,需要替换/删除的内容各不相同,并且案例可以重复(包含“教区”的短语有几十个实例),这意味着它要快得多要对需要删除/替换的内容进行编码,它不像正则表达式那样简单或干净地删除所有空格、特定单词或字符之后的所有字符、所有特殊字符等。它必须包含前导空格。
我查看了 R 中的 replace() gsub() 和其他类似命令,但它们都涉及创建向量,或者看起来确实如此。我想要的是查找我指定的字符的语法,它可以包括前导或尾随空格,并将它们替换为我指定的东西,它可以不包含任何内容,如果它没有找到特定的字符,情况是不变。
是的,我最终会多次重复相同的语法,创建向量可能更容易,但如果可能的话,我想获得我描述的语法,因为我还需要执行其他类似的操作。
感谢您的关注。
【问题讨论】:
-
县
-
你的列是一个向量。因此,使用
gsub创建修改后的向量正是您想要的。 -
再一次,使用
gsub或类似的东西并学习一些正则表达式可能是你最好的选择。大量资源,例如:regexr.com -
@RyanMorton - 返回错误消息“找不到对象‘县’。” County 是变量名,不确定我没有做什么看起来正确的 b/c。鉴于格雷戈尔的解释。
标签: r string replace substring recode