如何在没有科学记数法的情况下在R数据帧中显示数字列('e + 07')

S R*_*les 4 types r dataframe

我有一个R数据帧,其中一列包含一串数字,但我想将它们视为一个因素(主要是为了阻止R使用e + 04等缩短数字......).我找到解决此问题的一种方法是编辑从中获取数据的csv文件,并添加一个在所需列中包含单词的虚拟条目,然后重新导入它.如何在不搞乱csv的情况下使用R函数获得此效果?

为了澄清,我的数据框看起来像这样:

pNum,Condition,numberEntered
1,2,5.0970304e+07
Run Code Online (Sandbox Code Playgroud)

我想将numberEntered的数据类型从numeric更改为factor,并摆脱讨厌的e + 07.

Ric*_*ton 20

正如约书亚所说,这是一个印刷问题,而不是存储问题.您可以更改所有数字的打印方式(=通过调整getOption("scipen").

x <- c(1, 2, 509703045845, 0.0001)
print(x)
options(scipen = 50)
print(x)
Run Code Online (Sandbox Code Playgroud)

或者,您可能希望更改格式化这些数字的方式.(这将它们转换为character.)值得了解formatformatC.为了帮助您入门,请进行比较

format(x)
format(x, digits = 10)
format(x, digits = 3)
format(x, digits = 3, scientific = 5)
format(x, trim = TRUE, digits = 3, scientific = 5)
formatC(x)
formatC(x, format = "fg")
formatC(x, format = "fg", flag = "+")
Run Code Online (Sandbox Code Playgroud)

  • 为了增加澄清点,`format`和`formatC`不会改变数字的打印方式; 他们使用指定的格式将数字转换为字符. (4认同)