楼主: falseform
1449 2

[学习分享] 求教关于将df的指定列转换类型的问题 [推广有奖]

  • 0关注
  • 0粉丝

已卖:422份资源

硕士生

30%

还不是VIP/贵宾

-

威望
0
论坛币
19000 个
通用积分
1.4873
学术水平
2 点
热心指数
0 点
信用等级
0 点
经验
4941 点
帖子
91
精华
0
在线时间
133 小时
注册时间
2017-9-19
最后登录
2019-8-15

楼主
falseform 发表于 2017-11-27 14:01:27 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
df[,c(4,12)] <- lapply(df[,c(4,12)],as.factor)
比如说这段代码.我将 4 12两列转给factor格式,使用lapply就可以,但是如果使用sapply或者apply进行该操作就会转换成character,但是如果反过来 将指定列转换成numerica格式 lapply和sapply就都可以,有大神解释下原理吗
二维码

扫码加我 拉你入群

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

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


回帖推荐

jiangbeilu 发表于2楼  查看完整内容

因为sapply和apply将你的结果转化成了矩阵,而矩阵的特点是所有元素必须是相同类型,当别的类型中有字符型时,所有元素被强制转化成了字符型。 lapply是转成list,再复制给data.frame就没有这个限制了。
已有 1 人评分学术水平 收起 理由
jiangbeilu + 2 很好的问题,观察很细致

总评分: 学术水平 + 2   查看全部评分

沙发
jiangbeilu 学生认证  发表于 2017-11-27 22:12:08
因为sapply和apply将你的结果转化成了矩阵,而矩阵的特点是所有元素必须是相同类型,当别的类型中有字符型时,所有元素被强制转化成了字符型。
lapply是转成list,再复制给data.frame就没有这个限制了。

藤椅
falseform 发表于 2017-11-28 11:20:53
jiangbeilu 发表于 2017-11-27 22:12
因为sapply和apply将你的结果转化成了矩阵,而矩阵的特点是所有元素必须是相同类型,当别的类型中有字符型时 ...
大神膜拜,原来是这样,看来多看解释文档才能理解的更透彻

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

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