如何将变量中读取的数字转换为要读取的数字?

时间:2019-02-15 16:43:46

标签: r

首先,我是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

1 个答案:

答案 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

enter image description here