r - 将科学记数法转换为数字,保留小数

标签 r format number-formatting

出于某种原因,当我以科学记数法转换数字的字符列时,不会保留小数。

> str(output)
'data.frame':   213950 obs. of  2 variables:
 $ ColA    : chr  ".3370E+03" ".3375E+03" ".3380E+03" ".3385E+03" ...
 $ ColB    : chr  ".4942E+00" ".5295E+00" ".5682E+00" ".6091E+00" ...

> output$ColA = as.numeric(output$ColA)

> str(output)
'data.frame':   213950 obs. of  2 variables:
 $ ColA    : num  337 338 338 338 339 ...
 $ ColB    : chr  ".4942E+00" ".5295E+00" ".5682E+00" ".6091E+00" ...

我希望它阅读:
$ ColA    : num  337 337.5 338 338.5 ... 

我尝试了来自 this SO question 的解决方案,但没有运气:
> options(digits=9)
> str(output)
'data.frame':   213950 obs. of  2 variables:
 $ ColA      : num  337 338 338 338 339 ...
 $ ColB      : chr  ".4942E+00" ".5295E+00" ".5682E+00" ".6091E+00" ...

这是怎么回事?

最佳答案

您可以使用以下选项关闭数字的科学记数法;

options(scipen = 999)
这将使所有数字显示为小数。

如果要将其恢复为默认值,请使用
options(scipen = 0)
getOption("scipen")更多选择。

关于r - 将科学记数法转换为数字,保留小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44725001/

相关文章:

r - 如何 cbind 和 rbind 2 个数据框列表

Java控制打印输出格式

java.lang.NumberFormatException : For input string: "22"

列表项的 Roxygen 文档

r - Knitr 中的 Cairo 字体大小

.net - 这个 UTC 时间格式是什么?

c++ - C++ 中的 3.5 和 3.5f 是否相同?

c++ - %05d 与 std::stringstream 等价于负数?

在 R 中以 1 替换 0,条件是之前和之后的值

Python AUTH0 发布请求 : Invalid request payload JSON format