将科学计数法转换为数字,保留小数
Convert scientific notation to numeric, preserving decimals
出于某种原因,当我用科学记数法转换数字的字符列时,小数部分没有保留。
> 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 ...
我尝试了 的解决方案,但没有成功:
> 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")
。
出于某种原因,当我用科学记数法转换数字的字符列时,小数部分没有保留。
> 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 ...
我尝试了
> 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")
。