[问题]去掉不含中文的向量

楼主: 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