将因子值转换为数值的错误

时间:2019-04-22 18:16:44

标签: r dataframe

我有一个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

我做错了什么?

1 个答案:

答案 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
相关问题