Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.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
as.numeric正在舍入值_R_Numeric - Fatal编程技术网

as.numeric正在舍入值

as.numeric正在舍入值,r,numeric,R,Numeric,我正在尝试将字符列从数据帧转换为数字。然而,我得到的结果是四舍五入的值 无论我通过研究其他性质相同的问题来尝试什么,对我都不起作用。我已经检查了我试图转换的列向量的类,它是一个字符,而不是一个因子 以下是我的代码片段: some_data <- read.csv("file.csv", nrows = 100, colClasses = c("factor", "factor", "character", "character")) y <- Vectorize(function(x

我正在尝试将字符列从数据帧转换为数字。然而,我得到的结果是四舍五入的值

无论我通过研究其他性质相同的问题来尝试什么,对我都不起作用。我已经检查了我试图转换的列向量的类,它是一个字符,而不是一个因子

以下是我的代码片段:

some_data <- read.csv("file.csv", nrows = 100, colClasses = c("factor", "factor", "character", "character"))
y <- Vectorize(function(x) gsub("[^\\.\\d]", "", x, perl = TRUE))
some_data$colC <- y(data1$colC)
data1$colD <- y(data1$colCD)

data1$colC <- as.numeric(data1$colC)
data1$colD <- as.numeric(data1$colD)

我认为这是一个代表性问题,而不是实际的取整问题

options("digits") ## 7
?选项

“位数”:控制打印数值时要打印的位数。这只是一个建议。有效值为 1…22,默认为7。请参阅“print.default”中关于 值大于15

数字
可以一次性重置,即
打印(对象,数字=…)
,也可以全局重置,即
选项(数字=20)
(20可能有些过分,但可以帮助您了解发生了什么:根据下面的结果,10可能很好地满足您的需要。)


我试图重现您的问题,但我没有
文件.csv
您能提供一个可重现的示例吗?说明中的read.csv()不提供有关数据的任何信息,请尝试使示例重现。可能只是显示dput(head(data1))
我已经添加了dput(head(data1))的输出。
我刚刚检查过,你似乎是对的@Ben。谢谢毕竟并没有什么问题。我道歉。
options("digits") ## 7
as.numeric(data1$colC)
[1] 4023108 3180863 2558778 2393736 1333148 1275627
print(as.numeric(data1$colC),digits=10)
[1] 4023107.87 3180863.42 2558777.81 2393736.25 1333148.48 1275627.13
print(as.numeric(data1$colC),digits=20)
[1] 4023107.8700000001118 3180863.4199999999255 2558777.8100000000559
[4] 2393736.2500000000000 1333148.4799999999814 1275627.1299999998882