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

看板R_Language作者 (empireisme)時間3年前 (2020/07/07 18:36), 3年前編輯推噓6(609)
留言15則, 5人參與, 3年前最新討論串1/1
我想要利用str_which函數 挑出不含中文的index 但是不太會寫regex 以下是測試資料 x=c("台中1號",","95.39","15.708.78","統計所") 希望可以回傳向量2 ,3 希望版友幫忙 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.72.221.179 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1594118185.A.C90.html

07/07 19:35, 3年前 , 1F
版上搜尋reg關鍵字可以找到很多文哦,建議原po趁這次學起來
07/07 19:35, 1F

07/07 19:35, 3年前 , 2F
,對未來資料處理會非常有幫助,因為所有程式語言都可以用
07/07 19:35, 2F

07/07 19:35, 3年前 , 3F
正則表達式。
07/07 19:35, 3F

07/07 19:37, 3年前 , 4F
對了,以上述的範例來說,直接抓純數字跟小數點的組合可能
07/07 19:37, 4F

07/07 19:37, 3年前 , 5F
會比較簡單一點
07/07 19:37, 5F

07/07 22:04, 3年前 , 6F
同locka,抓到「整串都是數字或小數點」可用"^[0-9.]+$"
07/07 22:04, 6F
比較麻煩的是並不是純小數,而是有亂馬的那種 例如23.234.25235或是 23_dasdf ※ 編輯: empireisme (219.91.82.174 臺灣), 07/07/2020 23:45:27

07/08 01:04, 3年前 , 7F
grepl("[\\p{Han}]", strings , perl = T)
07/08 01:04, 7F

07/08 01:13, 3年前 , 8F
但如果有區別日文漢字與中文漢字的需求的話要另外想辦法
07/08 01:13, 8F

07/08 07:40, 3年前 , 9F
所以有亂碼是要抓出來還是不要?
07/08 07:40, 9F

07/08 09:06, 3年前 , 10F
要抓出所有不含中文的字
07/08 09:06, 10F

07/08 11:35, 3年前 , 11F
stringr是用ICU library的regex,支援\p{Han},不需要
07/08 11:35, 11F

07/08 11:35, 3年前 , 12F
perl=T。
07/08 11:35, 12F

07/08 11:38, 3年前 , 13F
str_which(x,"[\\p{Han}]", negate=T) 應可得到不含
07/08 11:38, 13F

07/08 11:38, 3年前 , 14F
漢字的index
07/08 11:38, 14F

07/08 15:04, 3年前 , 15F
真的有用,感恩
07/08 15:04, 15F
文章代碼(AID): #1V150foG (R_Language)
文章代碼(AID): #1V150foG (R_Language)