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