Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中将数据从pdf转换为数字_R - Fatal编程技术网

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

在R中将数据从pdf转换为数字,r,R,我是“R”的新手,仍在学习基础知识 有一次,我从一个网站上得到了一些人口数据,是xls格式的。 当我尝试读取时(使用gdata包中的read.xls),数据来自R(数据帧)。然而,一切都是性格,到目前为止还不错 在清理了一些不必要的行和列等之后,我试图将数字(以字符的形式呈现)转换成数值,其中我面临着奇怪的行为 我的数据元素如下所示(这里有一些示例) males1应该包含n行,每个行有一个元素,即每个州的雄性数量。当我在值上应用as.numeric时,它实际上会返回一个数字和 > as.n

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

有一次,我从一个网站上得到了一些人口数据,是xls格式的。 当我尝试读取时(使用gdata包中的read.xls),数据来自R(数据帧)。然而,一切都是性格,到目前为止还不错

在清理了一些不必要的行和列等之后,我试图将数字(以字符的形式呈现)转换成数值,其中我面临着奇怪的行为

我的数据元素如下所示(这里有一些示例)

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 
我敢肯定,我错过了一些非常基本的东西


请帮忙…

我假设您的阅读是以带有逗号而不是小数或分隔大数字的
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