[問題]去掉不含中文的向量

作者: empireisme (empireisme)   2020-07-07 18:36:22
我想要利用str_which函數
挑出不含中文的index
但是不太會寫regex
以下是測試資料
x=c("台中1號",","95.39","15.708.78","統計所")
希望可以回傳向量2 ,3
希望版友幫忙
作者: locka (locka)   2020-07-07 19:35:00
版上搜尋reg關鍵字可以找到很多文哦,建議原po趁這次學起來,對未來資料處理會非常有幫助,因為所有程式語言都可以用正則表達式。對了,以上述的範例來說,直接抓純數字跟小數點的組合可能會比較簡單一點
作者: andrew43 (討厭有好心推文後刪文者)   2020-07-07 22:04:00
同locka,抓到「整串都是數字或小數點」可用"^[0-9.]+$"
作者: daze (一期一會)   2020-07-08 01:04:00
grepl("[\\p{Han}]", strings , perl = T)但如果有區別日文漢字與中文漢字的需求的話要另外想辦法
作者: locka (locka)   2020-07-08 07:40:00
所以有亂碼是要抓出來還是不要?
作者: empireisme (empireisme)   2020-07-08 09:06:00
要抓出所有不含中文的字
作者: lawfulevil (守序邪惡)   2020-07-08 11:35:00
stringr是用ICU library的regex,支援\p{Han},不需要perl=T。str_which(x,"[\\p{Han}]", negate=T) 應可得到不含漢字的index
作者: empireisme (empireisme)   2020-07-08 15:04:00
真的有用,感恩

Links booklink

Contact Us: admin [ a t ] ucptt.com