请选择 进入手机版 | 继续访问电脑版
楼主: tooof
20255 11

[问答] R语言如何批量地将某些变量转换成因子 [推广有奖]

  • 0关注
  • 0粉丝

本科生

51%

还不是VIP/贵宾

-

威望
0
论坛币
1749 个
通用积分
18.4580
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
367 点
帖子
19
精华
0
在线时间
155 小时
注册时间
2017-1-8
最后登录
2023-10-14

tooof 发表于 2019-9-27 19:39:59 |显示全部楼层 |坛友微信交流群
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
单个变量的转换很简单,如



但是当需要转换的变量有几十个的情况下,怎么批量转换呢?


假设数据集MyTable中有200个变量,并且有一个向量factor_name存储了需要被转换成因子的变量名,请问如何转换呢?


十分感谢!

二维码

扫码加我 拉你入群

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

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

关键词:Back fen NCE

1.png
5752 发表于 2019-9-29 14:37:51 |显示全部楼层 |坛友微信交流群
apply(df,2,as.factor)
已有 2 人评分经验 论坛币 收起 理由
dxystata + 100 + 5 好的意见建议
cheetahfly + 10 热心帮助其他会员

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

使用道具

dbcoffee 发表于 2019-9-29 17:40:26 |显示全部楼层 |坛友微信交流群
for(i in factor_name){
    mytable[,i] <- as.factor(mytable[,i])
}
已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
dxystata + 100 + 5 好的意见建议
tooof + 1 + 1 + 1 观点有启发
cheetahfly + 10 热心帮助其他会员

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

使用道具

tooof 发表于 2019-10-8 14:36:41 |显示全部楼层 |坛友微信交流群
dbcoffee 发表于 2019-9-29 17:40
for(i in factor_name){
    mytable[,i] &lt;- as.factor(mytable[,i])
}
十分感谢!经过实践发现,需要再加一步:
首先 idx <- which(names(mytable)   %in% factor_name)
然后
for(i in idx ){
    mytable[,i]  <-  as.factor(mytable[,i])
}
已有 1 人评分经验 论坛币 收起 理由
dxystata + 100 + 5 好的意见建议

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

使用道具

weidoesa 发表于 2020-2-17 02:56:48 |显示全部楼层 |坛友微信交流群
tooof 发表于 2019-10-8 14:36
十分感谢!经过实践发现,需要再加一步:
首先 idx
露珠,求助,为什么我运行之后返回的还是num啊,代码如下:
factor_name<-c(diabetes,CAD,tummer)
idx <- which(names(stroke)   %in% factor_name)
for(i in idx ){
  stroke[,i]  <-  as.factor(stroke[,i])
}

使用道具

4realll 发表于 2020-7-21 13:01:37 |显示全部楼层 |坛友微信交流群
weidoesa 发表于 2020-2-17 02:56
露珠,求助,为什么我运行之后返回的还是num啊,代码如下:
factor_name
factor_name<-c('diabetes','CAD','tummer')  #列名加''就可以了

使用道具

请问您变量名是怎么保存为向量的?

使用道具

634081232@qq.co 发表于 2020-9-1 17:37
请问您变量名是怎么保存为向量的?
哦哦,明白了

使用道具

weidoesa 发表于 2020-2-17 02:56
露珠,求助,为什么我运行之后返回的还是num啊,代码如下:
factor_name
我遇到和你一样的问题,发现是因为R里的函数不同直接操作列表,也就是这种[ ]形式的数据,[[ ]]双重方框意味着操作列表里的元素,就不会出现NA了

factor_name<-c(diabetes,CAD,tummer)
idx <- which(names(stroke)   %in% factor_name)
for(i in idx ){
  stroke[] <-  as.factor(stroke[])
}

使用道具

H329 发表于 2021-2-15 19:47:56 |显示全部楼层 |坛友微信交流群
tooof 发表于 2019-10-8 14:36
十分感谢!经过实践发现,需要再加一步:
首先 idx
感谢大佬,真棒

使用道具

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

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

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

GMT+8, 2024-3-29 06:25