在R中将数据从pdf转换为数字
我是“R”的新手,仍在学习基础知识 有一次,我从一个网站上得到了一些人口数据,是xls格式的。 当我尝试读取时(使用gdata包中的read.xls),数据来自R(数据帧)。然而,一切都是性格,到目前为止还不错 在清理了一些不必要的行和列等之后,我试图将数字(以字符的形式呈现)转换成数值,其中我面临着奇怪的行为 我的数据元素如下所示(这里有一些示例) males1应该包含n行,每个行有一个元素,即每个州的雄性数量。当我在值上应用as.numeric时,它实际上会返回一个数字和在R中将数据从pdf转换为数字,r,R,我是“R”的新手,仍在学习基础知识 有一次,我从一个网站上得到了一些人口数据,是xls格式的。 当我尝试读取时(使用gdata包中的read.xls),数据来自R(数据帧)。然而,一切都是性格,到目前为止还不错 在清理了一些不必要的行和列等之后,我试图将数字(以字符的形式呈现)转换成数值,其中我面临着奇怪的行为 我的数据元素如下所示(这里有一些示例) males1应该包含n行,每个行有一个元素,即每个州的雄性数量。当我在值上应用as.numeric时,它实际上会返回一个数字和 > as.n
> 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
我敢肯定,我错过了一些非常基本的东西
请帮忙…我假设您的阅读是以带有逗号而不是小数或分隔大数字的
csv
格式进行的
由于逗号:
> males1[1]
[1] 6,665,561 # is this meant to be 6665561 ?
这是一个因素。当你将作为.numeric
添加到一个因子时,你会得到一个数字,但它只是按级别顺序排列的因子的数字
x <- c("a","b","c")
x <- as.factor(x)
as.numeric(x)
#[1] 1 2 3
x我正在读一个xls文件。逗号看起来像百万分隔符。这个示例值实际上是6665561,作为一个数字。把这个数字转换成正确的数值的正确方法是什么?把我最喜欢的as.numeric(as.character(some_factor))
作为提示,这是R
@CarlWitthoft中最糟糕的绊脚石之一:这不是唯一的问题。您还必须删除逗号。@JoshuaUlrich抱歉,您完全正确。你必须做一些类似于扫描(stuff,dec=,)
什么数字是“,”
代表的?答:它并不代表一个数字,所以在将因子/字符转换为数字之前,您需要先删除它:as.numeric(gsub(“,”,“”,levels(males1))[males1]
我想这只是您的解锁,35==6+6+6+5+5+6+1
,让您觉得您得到了一个数字之和。您是否也看到其他情况下的数字总和?
x <- c("a","b","c")
x <- as.factor(x)
as.numeric(x)
#[1] 1 2 3