楼主: 18174715760
1366 9

[问答] 怎么用R来从字符串里面提取变量 [推广有奖]

  • 0关注
  • 0粉丝

本科生

25%

还不是VIP/贵宾

-

威望
0
论坛币
7 个
通用积分
0.8141
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
3171 点
帖子
51
精华
0
在线时间
89 小时
注册时间
2022-3-8
最后登录
2026-1-8

楼主
18174715760 发表于 2022-7-19 21:54:19 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
想来请教一下大家呀![em31]现在我有一组amenitiesde 字符串型的数据,我想提取成一系列的虚拟变量来用。比如说kitchen,如果这个样本中有kitchen就记为1,没有的话就记为0。本来我想用%in%来判断的,但是好像不行?这应该怎么做呀?

截图20220719215026.png

截图20220719213345.png
二维码

扫码加我 拉你入群

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

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

关键词:字符串 amenities Kitchen Chen ties

回帖推荐

llb_321 发表于3楼  查看完整内容

当然如果不用%in%,更方便

沙发
llb_321 在职认证  发表于 2022-7-20 11:03:13
%in%是逻辑运算符,您的代码只能返回这列所有样本是否包含特定字符,返回的只有一个结果。所以,恐怕需要用到循环了

  1. tmp<-NULL
  2. for (i in 1:dim(shanghaidata)[1]) {
  3.   tmp[i]<-ifelse ("kitchen" %in% shanghaidata[i,35],1,0)
  4. }
  5. cbind(shanghaidata, AmenitiesNew=tmp)
复制代码

藤椅
llb_321 在职认证  发表于 2022-7-20 11:10:54
当然如果不用%in%,更方便
  1. cbind(shanghaidata, AmenitiesNew = as.numeric(grepl("kitchen",shanghaidata[,35])))
复制代码
已有 4 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
18174715760 + 1 + 1 + 1 精彩帖子
冰枫冷羽 + 100 + 1 分析的有道理
cheetahfly + 10 热心帮助其他会员
Sunknownay + 3 + 3 + 3 热心帮助其他会员

总评分: 经验 + 100  论坛币 + 10  学术水平 + 4  热心指数 + 5  信用等级 + 4   查看全部评分

板凳
nieqiang110 学生认证  发表于 2022-7-22 16:30:55
llb_321 发表于 2022-7-20 11:10
当然如果不用%in%,更方便
向lib_321老师学习

报纸
jiangbeilu 学生认证  发表于 2022-7-25 07:36:48
llb_321 发表于 2022-7-20 11:10
当然如果不用%in%,更方便
用grepl确实是神来之笔

地板
18174715760 发表于 2022-7-27 09:36:13
llb_321 发表于 2022-7-20 11:10
当然如果不用%in%,更方便
谢谢呀

7
18174715760 发表于 2022-7-27 09:47:43
llb_321 发表于 2022-7-20 11:10
当然如果不用%in%,更方便
真的同一个函数您写的就比我的简洁好多啊!好佩服~~学习了

8
tiesuoqiao 发表于 2022-7-27 22:30:10
如果你不仅仅需要kitchen, 还需要其他的比如free_parking之类
你不妨把sample数据贴上来,比如前10行,包括了所有列,或者至少包括了两列:Amenities列和在表中充当Primary key列

我可以用data.table自动产生所有虚拟变量

9
abelus 发表于 2022-7-29 12:48:58
单挑kitchen转0\1,grepl很赞,稍微注意下有没有kitchen*这种字符会乱入
%in%读用于 A.sets %in% B.sets,比如 vars %in% c('soap', 'water', 'vegetable')这种更方便
如果一次性要生成多个类别,model.matrix 值得拥有

10
18174715760 发表于 2022-7-29 17:35:36
abelus 发表于 2022-7-29 12:48
单挑kitchen转0\1,grepl很赞,稍微注意下有没有kitchen*这种字符会乱入
%in%读用于 A.sets %in% B.sets, ...
好滴,谢谢呀!

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-2 13:25