[英]Remove special characters and numbers from column R
我有一个看起来像这样的 df -
df <- data.frame(c = c('X.Int.2', 'BI', 'X.Int..4', 'BI.4', 'X.Int.6'),
d = sample(1:5, replace=T))
我正在尝试从冷 d 中删除所有特殊字符、“X”和数字。
我试过了
df %>%
mutate(c = gsub("\\s[0-9()]+", '', c))
和
df %>%
mutate(c = str_extract_all(c, "field:[a-zA-Z]+"))
两者都不会抛出错误,但第一个不会更改 df,第二个会清空该列。
我显然遗漏了一些明显的东西。
我希望——
c<-c('Int', "BI', 'Int', 'BI', 'Int')
在 base R 中,您可以尝试使用gsub
:
gsub('[X.0-9]', '', df$c)
#> [1] "Int" "BI" "Int" "BI" "Int"
这将删除字符"X"
、 "."
和来自c
列的数字。
删除 X. 和数字
str_remove_all(df$c, "[X.]|[:digit:]")
#> [1] "Int" "BI" "Int" "BI" "Int"
内部变异:
df %>%
mutate(c = str_remove_all(c, "[X.]|[:digit:]"))
#> c d
#> 1 Int 4
#> 2 BI 1
#> 3 Int 2
#> 4 BI 3
#> 5 Int 5
gsub
的另一种选择
gsub("[X.\\d+]", "", df$c, perl=TRUE)
#[1] "Int" "BI" "Int" "BI" "Int"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.