R 将因子值转换为数值时出错
我有一个data.frame,其中有一列称为因子格式的权重,我有以下值: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
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