全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1450 2
2017-11-27
df[,c(4,12)] <- lapply(df[,c(4,12)],as.factor)
比如说这段代码.我将 4 12两列转给factor格式,使用lapply就可以,但是如果使用sapply或者apply进行该操作就会转换成character,但是如果反过来 将指定列转换成numerica格式 lapply和sapply就都可以,有大神解释下原理吗
二维码

扫码加我 拉你入群

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

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

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

扫码加我 拉你入群

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

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

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

扫码加我 拉你入群

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

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

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群