楼主: tooof
22294 11

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

  • 0关注
  • 0粉丝

已卖:231份资源

本科生

51%

还不是VIP/贵宾

-

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

楼主
tooof 发表于 2019-9-27 19:39:59 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

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



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


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


十分感谢!

二维码

扫码加我 拉你入群

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

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

关键词:Back fen NCE

1.png (1.69 KB)

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')  #列名加''就可以了

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

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

9
634081232@qq.co 发表于 2020-9-1 21:50:41
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[])
}

10
H329 发表于 2021-2-15 19:47:56
tooof 发表于 2019-10-8 14:36
十分感谢!经过实践发现,需要再加一步:
首先 idx
感谢大佬,真棒

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

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