[英]Identification of special characters in a string using R
我有一個數據字段,其中包含可能包含特殊字符(例如@、/、-)的公司名稱。 我需要確定數據字段是否包含任何特殊字符。 我已經嘗試了r 上列出的建議檢查字符串是否包含特殊字符, 我該如何處理像 \^$.?*|+()[{ 在我的正則表達式中的特殊字符? 和R,檢查字符串中是否有特殊字符,但它們沒有給出正確的結果。
最后兩個公司名稱應在檢查字段中給出 FALSE,但三種方法都沒有產生正確的結果。 請建議如何更正我的代碼。 謝謝。
df <- data.frame(ID = c(1,2,3,4,5,6,7,8,9,10), Firm = c("Xi'an Feibao Technology Co Ltd",
"A&B PVT LTD", "Wonik Pne Co Ltd/Old","Wooree E&L Co Ltd"
, "X-Fab Silicon Foundries SE", "Yongsan S&C", "T-Gaia Corp",
"Suntech Co Ltd/Seoul","IBM","31 Inc"))
df$nwords <- str_count(df$Firm, "\\w+")
df$check1 <- grepl('[^[:alnum:]]', df$Firm)
df$check2 <- grepl('[^[:punct:]]', df$Firm)
pattern <- "/|:|\\?|<|>|\\|\\\\|\\|-|&|'|*"
df$check3 <- grepl(pattern, df$Firm)
> print(df)
ID Firm nwords check1 check2 check3
1 1 Xi'an Feibao Technology Co Ltd 6 TRUE TRUE TRUE
2 2 A&B PVT LTD 4 TRUE TRUE TRUE
3 3 Wonik Pne Co Ltd/Old 5 TRUE TRUE TRUE
4 4 Wooree E&L Co Ltd 5 TRUE TRUE TRUE
5 5 X-Fab Silicon Foundries SE 5 TRUE TRUE TRUE
6 6 Yongsan S&C 3 TRUE TRUE TRUE
7 7 T-Gaia Corp 3 TRUE TRUE TRUE
8 8 Suntech Co Ltd/Seoul 4 TRUE TRUE TRUE
9 9 IBM 1 FALSE TRUE TRUE
10 10 31 Inc 2 TRUE TRUE TRUE
這似乎有效,
grepl('[[:punct:]]', df$Firm)
#[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.