使用10个不带小数的随机数创建因子向量v1。 将因子向量转换为数值向量v2。 逐元素比较v1和v2。将比较值(对或错)存储在向量中,并显示出来。
我已经尝试过了:
v1<- factor(round(runif(10)),0)
v1
v2<-as.numeric(v1)
v2
comp<-v1==v2
comp
答案 0 :(得分:0)
看看下面的代码。
当v1是一个因数时,as.numeric(v1)
返回有关v1每个元素级别的信息。在此示例中,第一个元素是5,是因子的第三级,因此数字返回3。
v1的第二个元素是2,这也是第二个级别,因此as.numeric返回2,我们在比较v1 == v2时得到TRUE。还要查看帮助?factor
。
使用as.numeric(as.character(v1)
进行预期的转换。
set.seed(2002)
v1 <- factor(round(10*runif(10),0))
v1
# [1] 5 2 9 0 9 8 8 10 10 9
# Levels: 0 2 5 8 9 10
str(v1)
#Factor w/ 6 levels "0","2","5","8",..: 3 2 5 1 5 4 4 6 6 5
v2 <- as.numeric(v1)
v2
# [1] 3 2 5 1 5 4 4 6 6 5
v1 == v2
#[1] FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
v2 <- as.numeric(as.character(v1))
v1 == v2
#[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE