科学记法错误地转换为数字

时间:2016-11-17 13:04:39

标签: r scientific-notation

我有一张带有科学记数的数据表,例如1.1e-07 当我尝试使用as.numeric将这些数字转换为正常数字时,R会给出错误的数字,例如:

1.1e-07:   5977  
1.4e-06:   5633  

等。

我该如何解决这个问题?

更新:谢谢,这真的是关于因素。

1 个答案:

答案 0 :(得分:3)

您的号码很可能被定义为因素。这将导致as.numeric不返回输入的“值”,而是返回因子级序列号。

x <- as.factor(c(1.1e-7, 2e-8)) ## convert two numbers to factors

as.numeric(x)
[1] 2 1

要解决此问题,请确保您读取的数据不是数据源中的因素。

请注意,快速而肮脏的解决方案就像是

as.numeric(as.character(x))
[1] 1.1e-07 2.0e-08

format(as.numeric(as.character(x)), scientific = F)
[1] "0.00000011" "0.00000002"

顺便说一句,科学记数法在R中是标准的。format将数字转换为字符。