R 将因子值转换为数值时出错

R 将因子值转换为数值时出错,r,dataframe,R,Dataframe,我有一个data.frame,其中有一列称为因子格式的权重,我有以下值: Weight 8.248 5.365333333333333 5.725333333333337 我需要把它转换成一个数值,用相同的值,只改变格式 但是,当我使用此代码执行此操作时: dt$New.weight=as.numeric(dt$Weight) 我得到了这个数据框: Weight New.weight 8.248 2547 5.365333333333333 87

我有一个data.frame,其中有一列称为因子格式的权重,我有以下值:

Weight
8.248
5.365333333333333
5.725333333333337
我需要把它转换成一个数值,用相同的值,只改变格式

但是,当我使用此代码执行此操作时:

dt$New.weight=as.numeric(dt$Weight)
我得到了这个数据框:

Weight            New.weight
8.248             2547
5.365333333333333 871
5.725333333333337 958

我做错了什么

因子的存储模式是
整数
,因此当我们在
因子
上直接应用
as.numeric
时,我们得到的是整数存储模式值,而不是实际值。一个选项是通过
将其转换为.character

as.numeric(as.character(dt$Weight))


v1完美,抱歉打扰您。但是我不明白为什么我也需要使用
as.character
?我很难理解这一点!相关:
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