請在洗掉/替換 R 中字符資料中的尾隨方括號、內引號和斜杠方面提供一些幫助,最好使用dplyr.
樣本:
df <- c("['Mamie Smith']", "[\"Screamin' Jay Hawkins\"]")
我試過的:
gsub("[[]]", "", df) # Throws error
df %>%
str_replace("[[]]", "") # Also throws error
資料應該是什么樣的。
"Mamie Smith", "Screamin' Jay Hawkins"
很想得到你的幫助。
uj5u.com熱心網友回復:
在基礎 R 中,我們可以使用trimws函式:
如果我們對非單詞部分不感興趣:
trimws(df, whitespace = "\\W ")
[1] "Mamie Smith" "Screamin' Jay Hawkins"
但是,如果我們只對洗掉方括號和引號感興趣,同時保留其他標點符號、空格等,那么:
trimws(df, whitespace = "[\\]\\[\"'] ")
[1] "Mamie Smith" "Screamin' Jay Hawkins"
uj5u.com熱心網友回復:
基數 R:
sapply(regmatches(df, regexec('(\\w.*)(.*\\w)', df)), "[", 1)
[1] "Mamie Smith" "Screamin' Jay Hawkins"
或者
我們可以使用str_extractfromstringr包和這個正則運算式:
library(stringr)
str_extract(df, '(\\w.*)(.*\\w)')
[1] "Mamie Smith" "Screamin' Jay Hawkins"
uj5u.com熱心網友回復:
因為[,]和"是特殊字符,您需要使用雙反斜杠“轉義”\\
這是一些替代代碼:
gsub('\\"|\\[|\\]', "", df)
uj5u.com熱心網友回復:
要將方括號與隨附的引號型別配對,您可以使用:
\[(["'])(.*?)\1]
解釋
\[匹配[(["'])捕獲組 1,捕獲"或'(.*?)捕獲組 2,匹配盡可能少的字符- \1` 反向參考第 1 組以匹配相同型別的參考
]匹配]
正則運算式演示| R 演示
df <- c("['Mamie Smith']", "[\"Screamin' Jay Hawkins\"]")
gsub("\\[([\"'])(.*?)\\1]", "\\2", df)
輸出
[1] "Mamie Smith" "Screamin' Jay Hawkins"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/479773.html
