首先,我是R
的新手,我只是在学习。
我有一个数据框,我想用两个变量绘制一些图形和图形,这些变量之一被视为一个因数,但此变量具有实数。这个变量是一个百分比,因此我想用图形表示与某些市政当局有关的百分比,如何将这些数字转换为数值?
我已经尝试了以下代码,因为在本指南中,我正在读它的说法,即使用as.numeric()函数将因子转换为数字,但是结果却是完全不同的数字。
例如
#the data frame is valle.abu2 valle.abu2$Porcentaje.de.Excedencias #then as.numeric(valle.abu2$Porcentaje.de.Excedencias) valle.abu2$Porcentaje.de.Excedencias [1] 1.3 0.04 1.6 0 0 0 0.31 0.61 0 2.31 3.6 8.04 0 7.18 0 5.88 1.35 0 [19] 2.56 0 3.2 0 0 0 0 0 0.05 0.32 0 5.23 0 0 0 0 0 0 [37] 0 5.42 5.54 11.44 0 2.51 0 4.88 0 3.45 0 2.78 2.7 0 4.39 0 0 0 [55] 0 3.99 3.42 6.01 0 5.52 0 0.04 0 0.46 0.34 0 4.63 0 14.65 2.91 5.9 4.17 [73] 0 0 0 0 0 0 1.15 1.52 9.17 2.22 3.82 0 0 0 0 7.04 3.57 12.5 [91] 0 0 0 0.72 1.32 0 9.88 2.63 0 0 0 0 0 0 37.57 134 Levels: 0 0.03 0.04 0.05 0.06 0.07 0.09 0.1 0.11 0.14 0.15 0.23 0.27 0.29 0.31 0.32 0.33 0.34 0.42 as.numeric(valle.abu2$Porcentaje.de.Excedencias) [1] 42 3 48 1 1 1 15 25 1 69 92 129 1 127 1 120 44 1 71 1 86 1 1 1 1 1 4 [28] 16 1 115 1 1 1 1 1 1 1 116 118 59 1 70 1 108 1 90 1 75 73 1 103 1 1 1 [55] 1 97 89 122 1 117 1 3 1 21 18 1 104 1 64 77 121 101 1 1 1 1 1 1 39 47 131 [82] 67 96 1 1 1 1 126 91 60 1 1 1 28 43 1 134 72 1 1 1 1 1 1 98
答案 0 :(得分:0)
尝试:
as_numeric_factor <- function(x){
as.numeric(levels(x))[x]
}
as_numeric_factor(valle.abu2$Porcentaje.de.Excedencias)
说明。
帮助页面?factor
的{{1}}部分包括两种不同的方式来完成问题的要求,并指出其中一种更为有效。
要将因子f转换为近似其原始数值,
建议使用Warning
,效率要比
略高as.numeric(levels(f))[f]
。
这是一个简单的速度测试。不需要as.numeric(as.character(f))
,因为关注的结果是时间,而不是计算。
set.seed