作者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/cn.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