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

问题描述 投票:1回答:1

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

我做错了什么?

r dataframe
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.