将具有级别的因子值转换为r中的数字

时间:2014-10-09 03:46:27

标签: r r-factor

我正在尝试将R中的因子值转换为数字。我尝试了各种方法,但无论我做什么,我都会收到错误“强制引入的NAs”。这是我运行的示例代码和我得到的错误:

> demand <- read.csv("file.csv" )
> demand[3,3]
[1] 5,185
25 Levels:  2/Jan/2011 3,370 4,339 4,465 4,549 4,676 4,767 4,844 5,055 5,139 5,185 5,265 5,350 5,434 ... dam

> a <- demand[3,3]
> as.numeric(as.character(a))
[1] NA
Warning message:
NAs introduced by coercion 

如何获取数值?

2 个答案:

答案 0 :(得分:2)

你应该替换

as.numeric(as.character(a))

代码中的

as.numeric( gsub("[,]", "", as.character(a) ) )

答案 1 :(得分:0)

我在这里得到了2条评论:

  1. 您正在使用来自东欧Excel浮动表示法的文件(&#39;,&#39;而不是&#39;。&#39;)。
  2. 要使其正常运行,请使用read.csv2()功能。

    1. 第一次观察可能是标题?我想下面的观察结果通过这个日期(2011年1月2日)以某种方式连接起来。我建议使用header=T参数。
    2. 汇总:

      尝试read.csv2("file.csv", head=T)

      如果由于任何原因您仍需要将因子更改为数值,我建议:

      f = as.factor(1:10)

      as.numeric(f[f])

      最佳, ADII _