我有一个data.frame,其中有一个以因子格式表示为weight的列,并且我具有以下值:
Weight
8.248
5.365333333333333
5.725333333333337
我需要将其转换为具有相同值的数字值,只是更改格式。
但是,当我使用以下代码进行此操作时:
dt$New.weight=as.numeric(dt$Weight)
然后我得到了这个data.frame:
Weight New.weight
8.248 2547
5.365333333333333 871
5.725333333333337 958
我做错了什么?
答案 0 :(得分:1)
factor
的存储模式为integer
,因此,当将as.numeric
直接应用于factor
时,我们得到的是整数存储模式值,而不是实际值。一种选择是通过as.character
as.numeric(as.character(dt$Weight))
v1 <- factor(rep(c(21, 24, 32), 2))
as.numeric(v1)
#[1] 1 2 3 1 2 3
as.numeric(as.character(v1))
#[1] 21 24 32 21 24 32