簡體   English   中英

從 R 列中刪除特殊字符和數字

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM