0

我是“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 

我敢肯定,我缺少一些非常基本的东西..

请帮忙...

4

1 回答 1

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

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

于 2013-02-07T19:43:39.287 回答