将数据从pdf转换为R中的数字

时间:2013-02-07 19:36:58

标签: r

我是“R”的新手,仍在学习基础知识。

在某种情况下,我从网站获得了一些xls格式的人口数据。 当我尝试阅读(使用gdata包中的read.xls)时,数据来自R(数据框)。然而,一切都是品格,到目前为止还不错。

在清理了不必要的行和列等之后,我试图将数字(作为字符出现)转换为数字值,其中我面临着奇怪的行为......

我的数据元素看起来像这样(这里有一些示例)

> class(males1)
[1] "factor"

> males1[1]
[1] 6,665,561

males1应该包含n行,每行包含一个元素,每个州的男性数量。当我在值上应用as.numeric时,它实际上给了我一个数字总和

> as.numeric(males1[1])
[1] 35

当我将males1转换为矢量时,我会收到不同的错误

> vv=as.vector(males1)
> vv[1]
[1] "6,665,561"
> as.numeric(vv[1])
[1] NA
Warning message:
NAs introduced by coercion 

我确信,我缺少一些非常基本的东西..

请帮助...

1 个答案:

答案 0 :(得分:1)

我假设你的csv读数中有逗号而不是小数或分隔大数字?

因为逗号:

> males1[1]
[1] 6,665,561 # is this meant to be 6665561 ?

是一个因素。当你as.numeric得到一个因子时,你会得到一个数字,但它只是等级数量的因子。

   x <- c("a","b","c")
   x <- as.factor(x)
   as.numeric(x)
   #[1] 1 2 3

您是否可以使用?gsub删除它们或在read.csv中使用dec="."