楼主: 18174715760
1527 7

[问答] 关于变量的重编码 [推广有奖]

  • 0关注
  • 0粉丝

本科生

6%

还不是VIP/贵宾

-

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

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我想将几个多分类的变量从字符串重新编码为数值型(1,2,3),用的recode函数,但是提示出错 :'list' object cannot be coerced to type 'double',然后我百度一下说让我unlist一下,用了之后结果也是一样的。
  1. NN2019[,11]<-unlist(NN2019[,11])
  2. NN2019[,11]<-recode(NN2019[,11],"'Entire home/apt'='1'; 'Private room'='2';'Shared room'='3'")
复制代码

然后我在recode那个代码那里增加as.factor=T的话,我整列的数据就变成了NA,这是为啥呀
  1. NN2019[,11]<-recode(NN2019[,11],"'Entire home/apt'='1'; 'Private room'='2';'Shared room'='3'",as.factor=T)
  2. head(NN2019[,11])
复制代码


二维码

扫码加我 拉你入群

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

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

关键词:double cannot recode object canno

沙发
橙红的果士 学生认证  发表于 2022-5-20 16:35:53 |只看作者 |坛友微信交流群
你可以不变动原始变量,通过条件判断生成新的数值型变量就可以了呀。

使用道具

藤椅
llb_321 在职认证  发表于 2022-5-21 08:05:29 |只看作者 |坛友微信交流群
可以利用因子型数据转换,比如:
  1. a <- factor(c("red", "blue", "green", "red", "gray") ) #示例字符型向量因子化
  2. levels(a) <- c(1, 2, 3, 4) #字符型因子转化为数值型因子
  3. as.numeric(a) #因子转化为数值
复制代码

使用道具

板凳
18174715760 发表于 2022-5-22 23:42:11 |只看作者 |坛友微信交流群
橙红的果士 发表于 2022-5-20 16:35
你可以不变动原始变量,通过条件判断生成新的数值型变量就可以了呀。
谢谢,我刚刚试了下,好像可以了

使用道具

报纸
18174715760 发表于 2022-5-22 23:48:09 |只看作者 |坛友微信交流群
llb_321 发表于 2022-5-21 08:05
可以利用因子型数据转换,比如:
谢谢,我试下这个。我刚刚用了条件判断,感觉你这个好像简洁一些,我试试看看
我这个要转化成类别变量的话还不是要as.factor一下呀
  1. NN2019$ListingType[NN2019$Listing.Type=="Entire home/apt"]<-1
  2. NN2019$ListingType[NN2019$Listing.Type=="Private room"]<-2
  3. NN2019$ListingType[NN2019$Listing.Type=="Shared room"]<-3
复制代码

使用道具

地板
18174715760 发表于 2022-5-23 00:02:17 |只看作者 |坛友微信交流群
llb_321 发表于 2022-5-21 08:05
可以利用因子型数据转换,比如:
哇,这个确实方便诶,谢谢你。它那个level是按照出现的顺序先后赋值的么?比如示例里面的,red=1,blue=2,green=3,gray=4,是么?

使用道具

7
llb_321 在职认证  发表于 2022-5-23 10:11:34 |只看作者 |坛友微信交流群
18174715760 发表于 2022-5-23 00:02
哇,这个确实方便诶,谢谢你。它那个level是按照出现的顺序先后赋值的么?比如示例里面的,red=1,blue=2 ...
不是出现的顺序。
可以只用levels(a)指令查看转化为因子型后a的因子水平以及相应的顺序,后面不过是用数值按那个顺序重新赋值。

使用道具

8
18174715760 发表于 2022-5-23 10:36:52 |只看作者 |坛友微信交流群
llb_321 发表于 2022-5-23 10:11
不是出现的顺序。
可以只用levels(a)指令查看转化为因子型后a的因子水平以及相应的顺序,后面不过是用数 ...
好的,谢谢

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-24 08:13