【发布时间】:2014-03-13 14:07:19
【问题描述】:
我有一个关于如何使用和操纵因素的一般性问题。在我的工作中,R 经常将某些内容强制转换为因子,因为 R 不允许矩阵中有不同的模式,但实际上我更希望这些列保持数字。
在处理这些因素时,我注意到:
当您在不同的列中有两个相似的因子(例如,1 和 5 之间的所有值)时,将第一个列因子强制为
as.numeric()的数字可以正常工作。通过 as.numeric 强制第二个、第三个或第四个总是给每个“因子”加 1。为什么?-
好像有区别
go$V4 <- as.double(go$V4)与
go[,4] <- as.numeric(levels(go[,4]))[go[,4]]
假设as.double 和as.numeric 确实在很大程度上相同,区别在其他地方,但我不明白。
有语法专家吗?
【问题讨论】:
-
如果你有不同的数据类型,不要使用矩阵,你不会遇到这个问题。请改用列表、data.frame 或 data.table。要将因子强制转换为数字,您需要先将其设为字符:
as.numeric(as.character(yourfactor))。
标签: r matrix syntax refactoring