繁体   English   中英

R-gsub替换并清除同一行代码

[英]R - gsub replace and clean in same line of code

我想知道是否可以替换一个字符并在一行中删除空白。

string = c("av13 personal care", "-11", "av13 personal care", "av14 personal services", 
    "av15 meals", "av29 visit friends", "av17 free time travel", 
 "av27 pubs", "av28 restaurants", "av28 restaurants", "av29 visit friends", 
 "av37 conversation", "av14 personal services", "av13 personal care", 
 "av13 personal care", "av13 personal care", "-11", "av13 personal care", 
 "av13 personal care", "av15 meals", "av6 cook, wash up", "av40 other leisure", 
 "av37 conversation", "av21 walking", "av40 other leisure", "av15 meals", 
 "av6 cook, wash up", "av13 personal care", "av21 walking", "av17 free time travel", 
 "av15 meals", "av35 read papers, magazines", "av27 pubs", "av13 personal     care", 
   "-11", "av13 personal care", "av2 paidwork at home", "av25 dances or    parties", 
"av1 paid work", "av1 paid work", "av1 paid work", "av1 paid work", 
"av2 paidwork at home", "av2 paidwork at home", "av13 personal care", 
 "av17 free time travel", "av29 visit friends", "av17 free time travel", 
 "av13 personal care", "-11", "av13 personal care")

而不是总是这样做

clean = gsub(pattern = "[A-z]", replacement = "", x = string)
clean = gsub(pattern = "[[:blank:]]", replacement = "", x = clean)

是否可以在第一行中直接插入[[:blank:]]

我也对",""35," )有疑问,如何在第一行中也将其消除?

小更新我意识到,在我的(巨大)的数据集我也得到/gsub我的string -你能不能也帮我去除呢?

这里是单线:

gsub(pattern = "[A-z ,/]", replacement = "", x = string) # added / to address the update

要么

gsub(pattern = "[A-z]| |,|/", replacement = "", x = string)

如hwnd所指出的,范围[Az]实际上包含几个特殊字符,它们位于Ascii代码中的AZ和az之间( 相关的SO答案ASCII表 )。 这些特殊字符是: [\\]^_`

字符类[Az]也将与其他字符匹配,我将使用:

gsub('[a-zA-Z\t ,]', '', string)

注意: POSIX方括号表达式[:blank:]与空格和制表符匹配。

如果仅需要空间,则:

gsub('[a-zA-Z, ]', '', string)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM