楼主: 5346180507
1898 1

[问答] R语言怎么保留只含有中文的行? [推广有奖]

  • 0关注
  • 2粉丝

硕士生

13%

还不是VIP/贵宾

-

威望
0
论坛币
390 个
通用积分
14.6119
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
719 点
帖子
69
精华
0
在线时间
143 小时
注册时间
2019-10-5
最后登录
2024-6-16

楼主
5346180507 发表于 2020-6-8 10:51:55 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
求教,
目前有一组数据,其中姓氏列包含大部分正常的数据(张王李赵等)和小部分乱码(ABCD *$等符号)。 如何筛选只有中文的数据?
多谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:R语言 ABCD ABC 小部分

回帖推荐

megapanda 发表于2楼  查看完整内容

可能需要一些数据来判断 我的想法是使用utf8ToInt函数,把所有列都转换成int, 正常的中文字符是从\u4e00 ~ \u9fa5,也就是19968 ~ 40869 如果你的乱码都是字母啥的,那肯定不在这个范围,对每行判断一下每个字(姓氏可能是多个字)是否都落在这个范围,不在的就是乱码 举个例子:

沙发
megapanda 发表于 2020-6-9 13:04:52
可能需要一些数据来判断

我的想法是使用utf8ToInt函数,把所有列都转换成int,
正常的中文字符是从\u4e00 ~ \u9fa5,也就是19968 ~ 40869

如果你的乱码都是字母啥的,那肯定不在这个范围,对每行判断一下每个字(姓氏可能是多个字)是否都落在这个范围,不在的就是乱码

举个例子:
  1. > x = matrix(c("中文", "A*Bģ", "你123"))
  2. > x
  3.      [,1]   
  4. [1,] "中文"
  5. [2,] "A*Bģ"
  6. [3,] "你123"
  7. >
  8. > # 判断是否有乱码(非中文),如果有则返回TRUE
  9. > testfun = function (x) {
  10. +   x_int = utf8ToInt(x)
  11. +   any(x_int < 19968, x_int > 40869)
  12. + }
  13. >
  14. > apply(x, 1, testfun)
  15. [1] FALSE  TRUE  TRUE
复制代码
已有 1 人评分经验 论坛币 收起 理由
dxystata + 100 + 10 热心帮助其他会员

总评分: 经验 + 100  论坛币 + 10   查看全部评分

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 10:35