楼主: 阿璇tian
6156 9

[问答] R语言模糊查询 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

89%

还不是VIP/贵宾

-

威望
0
论坛币
8 个
通用积分
2.8713
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1959 点
帖子
121
精华
0
在线时间
195 小时
注册时间
2017-12-21
最后登录
2023-3-27

楼主
阿璇tian 发表于 2018-11-19 13:58:30 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
老师们好,我有个小问题,我想模糊匹配,比如含有北京市或者天津市的,单个的我写了没问题,但像这种,含有两个或者多个条件的,怎么写呢?
我这么写的,报错了
  1. a <- grep("*北京市",dk$detailPlace) | grep("*河北省",dk$detailPlace)
复制代码


二维码

扫码加我 拉你入群

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

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

关键词:模糊匹配 天津市 北京市

沙发
Whig 在职认证  发表于 2018-11-19 14:10:55
grep("*(北京|河北)", c("北京市", "山东省", "北京海淀", "河北省"))
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

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

藤椅
阿璇tian 发表于 2018-11-19 14:25:24
Whig 发表于 2018-11-19 14:10
grep("*(北京|河北)", c("北京市", "山东省", "北京海淀", "河北省"))
非常感谢老师!

我想把包换北京、河北的标为1,这么写的,报错了,什么原因呢?

dk<- within(dk,{
  bj<- NA
  bj[grep("*(北京市|河北省)",dk$detailPlace)]<- 1
})

板凳
Whig 在职认证  发表于 2018-11-19 14:28:17
阿璇tian 发表于 2018-11-19 14:25
非常感谢老师!

我想把包换北京、河北的标为1,这么写的,报错了,什么原因呢?
你私信我QQ或者微信,版聊太费劲了

报纸
Whig 在职认证  发表于 2018-11-19 14:30:47
阿璇tian 发表于 2018-11-19 14:25
非常感谢老师!

我想把包换北京、河北的标为1,这么写的,报错了,什么原因呢?
grep给出的是位置信息,你这样写肯定不对

地板
阿璇tian 发表于 2018-11-19 14:35:41
Whig 发表于 2018-11-19 14:30
grep给出的是位置信息,你这样写肯定不对
您说的太对了,我用grepl就可以了

7
阿璇tian 发表于 2018-11-19 15:23:28
请问老师们一个小问题,用R怎么实现,比如
ry$a<- ifelse(ry$b=="一级部门",ry$username,ry$a)
如果b是一级部门,那么把username赋给a,否则还是a
我这么写的ifelse,不对,请问怎么写呢

8
阿璇tian 发表于 2018-11-19 15:33:10
我加了一个as.character,就可以了,链接的数据库,默认的是factor,转换时候不对,得先转出character才行

9
阿璇tian 发表于 2018-11-19 15:38:13
还要请教一个问题,调整列的顺序,stata可以很方便的把哪个列放在哪个列的后面,order a, after(b)
我查了一些资料,R实现这个功能好麻烦,还要去数列的位置,有没有什么简单的方法呢?

10
阿璇tian 发表于 2018-11-19 16:20:04
  1. cost2<- cost[which(cost$userid=="004038"),]


  2. 老师们,这句我想把id是004038的去掉,结果没有这个id的,是0个,我在which前面添加了一个负号,应该还是原数据,结果没有数据了,为啥
复制代码

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-27 23:54