作者empireisme (empireisme)
看板R_Language
標題[問題]去掉不含中文的向量
時間Tue Jul 7 18:36:22 2020
我想要利用str_which函數
挑出不含中文的index
但是不太會寫regex
以下是測試資料
x=c("台中1號",","95.39","15.708.78","統計所")
希望可以回傳向量2 ,3
希望版友幫忙
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.72.221.179 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1594118185.A.C90.html
1F:推 locka: 版上搜尋reg關鍵字可以找到很多文哦,建議原po趁這次學起來 07/07 19:35
2F:推 locka: ,對未來資料處理會非常有幫助,因為所有程式語言都可以用 07/07 19:35
3F:推 locka: 正則表達式。 07/07 19:35
4F:→ locka: 對了,以上述的範例來說,直接抓純數字跟小數點的組合可能 07/07 19:37
5F:→ locka: 會比較簡單一點 07/07 19:37
6F:→ andrew43: 同locka,抓到「整串都是數字或小數點」可用"^[0-9.]+$" 07/07 22:04
比較麻煩的是並不是純小數,而是有亂馬的那種
例如23.234.25235或是 23_dasdf
※ 編輯: empireisme (219.91.82.174 臺灣), 07/07/2020 23:45:27
7F:推 daze: grepl("[\\p{Han}]", strings , perl = T) 07/08 01:04
8F:推 daze: 但如果有區別日文漢字與中文漢字的需求的話要另外想辦法 07/08 01:13
9F:→ locka: 所以有亂碼是要抓出來還是不要? 07/08 07:40
10F:→ empireisme: 要抓出所有不含中文的字 07/08 09:06
11F:推 lawfulevil: stringr是用ICU library的regex,支援\p{Han},不需要 07/08 11:35
12F:→ lawfulevil: perl=T。 07/08 11:35
13F:→ lawfulevil: str_which(x,"[\\p{Han}]", negate=T) 應可得到不含 07/08 11:38
14F:→ lawfulevil: 漢字的index 07/08 11:38
15F:→ empireisme: 真的有用,感恩 07/08 15:04