我是"R“的新手,还在学习基础知识。
在一种情况下,我从一个网站上获得了一些xls格式的人口数据。当我试图读取它(使用gdata包中的read.xls )时,数据进入R(一个数据帧)。然而,一切都是性格,到目前为止一切都很好。
在清理了一些不必要的行和列等之后,我试图将数字(以字符的形式出现)转换为数字值,其中我面临着奇怪的行为……
我的数据元素如下所示(这里有一些示例)
> class(males1)
[1] "factor"
> males1[1]
[1] 6,665,561males1假设包含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 我确信,我遗漏了一些非常基本的东西..
请帮帮忙。
发布于 2013-02-08 03:43:39
我假设你读的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="."来移除它们?
https://stackoverflow.com/questions/14759522
复制相似问题