删除/替换字符串中的特定单词或短语-R
我环顾了这里和其他地方,发现了许多类似的问题,但没有一个能完全回答我的问题。我需要清理命名约定,特别是替换/删除特定列/变量中的某些单词和短语,而不是整个数据集。我正在从SPSS迁移到R,下面我有一个在SPSS中执行此操作的代码示例,但我不确定如何在R中执行此操作 例如: “阿卡迪亚教区”->“阿卡迪亚”(删除教区和教区前的空间) “第五区”->“第五区”(删除区和区前的空间) SPSS语法:删除/替换字符串中的特定单词或短语-R,r,string,replace,substring,recode,R,String,Replace,Substring,Recode,我环顾了这里和其他地方,发现了许多类似的问题,但没有一个能完全回答我的问题。我需要清理命名约定,特别是替换/删除特定列/变量中的某些单词和短语,而不是整个数据集。我正在从SPSS迁移到R,下面我有一个在SPSS中执行此操作的代码示例,但我不确定如何在R中执行此操作 例如: “阿卡迪亚教区”->“阿卡迪亚”(删除教区和教区前的空间) “第五区”->“第五区”(删除区和区前的空间) SPSS语法: COMPUTE country=REPLACE(country,'教区','')。 本专栏中只有320
COMPUTE country=REPLACE(country,'教区','')。
本专栏中只有32000个案例,需要替换/删除的内容各不相同,并且案例可以重复(包含“教区”的短语有几十个实例),这意味着编写需要删除/替换的代码要快得多,删除所有空格、特定单词或字符后的所有字符、所有特殊字符等并不像正则表达式那样简单或干净,而且必须包含前导空格
我已经看过replace()gsub()和R中的其他类似命令,但是它们都涉及到创建向量,或者看起来是这样。我想要的是语法,它查找我指定的字符,可以包含前导或尾随空格,并用我指定的字符替换它们,这些字符可以不包含任何内容,如果它找不到特定字符,则大小写保持不变
是的,我将多次重复相同的语法,创建向量可能更容易,但如果可能的话,我希望获得我描述的语法,因为我还需要执行其他类似的操作
谢谢你的关注 也许我遗漏了一些东西,但我不明白为什么不能在正则表达式中简单地使用条件,然后删掉恼人的空白
string <- c("Arcadia Parish", "Fifth District")
bad_words <- c("Parish", "District") # Write all the words you want removed here!
bad_regex <- paste(bad_words, collapse = "|")
trimws( sub(bad_regex, "", string) )
# [1] "Arcadia" "Fifth"
string也许我遗漏了一些东西,但我不明白为什么不能在正则表达式中使用条件,然后去掉恼人的空白
string <- c("Arcadia Parish", "Fifth District")
bad_words <- c("Parish", "District") # Write all the words you want removed here!
bad_regex <- paste(bad_words, collapse = "|")
trimws( sub(bad_regex, "", string) )
# [1] "Arcadia" "Fifth"
stringdataframename$varnamedataframename$varname>x x2 x2
[1] “阿卡迪亚”“第五”
图例:
- ^模式的开始
- ()组(或令牌)
- \w*单词字符的一次或多次出现次数超过1次
- .*除新行外,任何字符的一个或多个引用\n
- $图案结束
- \1从regexp返回组
>x2x2x2
[1] “阿卡迪亚”“第五”
图例:
- ^模式的开始
- ()组(或令牌)
- \w*单词字符的一次或多次出现次数超过1次
- .*除新行外,任何字符的一个或多个引用\n
- $图案结束
- \1从regexp返回组
您的列是一个向量。因此,使用gsub
创建修改的向量正是您想要的。建议重复:同样,使用gsub
或类似工具并学习一些正则表达式可能是您的最佳选择。大量资源,例如:@RyanMorton-返回错误消息“object'country'not found.”country是变量名,不确定我没有做什么b/c看起来正确。根据Gregor的解释,你的列是一个向量。因此,使用gsub
创建修改的向量正是您想要的。建议重复:同样,使用gsub
或类似工具并学习一些正则表达式可能是您的最佳选择。大量资源,例如:@RyanMorton-返回错误消息“object'country'not found.”country是变量名,不确定我没有做什么b/c看起来正确。根据格雷戈的解释。
> x <- c("Acadia Parish", "Fifth District")
> x2 <- gsub("^(\\w*).*$", "\\1", x)
> x2
[1] "Acadia" "Fifth"