我有一个关于如何使用和操纵因素的一般性问题。在我的工作中,R经常强迫某些因素成为一个因素,因为R不允许矩阵中的不同模式,但实际上我希望这些列保持数字。
在处理这些因素时,我注意到:
当您在不同的列中有两个相似的因素(例如1到5之间的所有值)时,将{1}}的第一列因子强制转换为数字可以正常工作。强制第二,第三或第四通道as.numeric总是为每个“因子”增加1。为什么呢?
之间似乎存在差异
as.numeric()
和
go$V4 <- as.double(go$V4)
假设go[,4] <- as.numeric(levels(go[,4]))[go[,4]]
和as.double
确实大致相同,那么区别在于其他地方,但我不明白。
任何语法专家?
答案 0 :(得分:0)
关于强制要求b / c矩阵要求的陈述是完全错误的。 (R矩阵不能容纳因子变量。)也许您正在考虑data.frame。正如R FAQ所说,您需要使用:
go$V4 <- as.numeric(as. character(go$V4))
如果数字向量与任何字符向量连接(c()
),则立即强制转换为&#34;字符&#34;模式。如果文本字段中的列中包含非数字字符,则输入时会发生相同的事情。