如何禁用科学记数法?

Sam*_*tha 276 formatting r scientific-notation

我有一个带有一列p值的数据框,我想对这些p值进行选择.

> pvalues_anova
[1] 9.693919e-01 9.781728e-01 9.918415e-01 9.716883e-01 1.667183e-02
[6] 9.952762e-02 5.386854e-01 9.997699e-01 8.714044e-01 7.211856e-01
[11] 9.536330e-01 9.239667e-01 9.645590e-01 9.478572e-01 6.243775e-01
[16] 5.608563e-01 1.371190e-04 9.601970e-01 9.988648e-01 9.698365e-01
[21] 2.795891e-06 1.290176e-01 7.125751e-01 5.193604e-01 4.835312e-04
Run Code Online (Sandbox Code Playgroud)

选择方式:

anovatest<- results[ - which(results$pvalues_anova < 0.8) ,]
Run Code Online (Sandbox Code Playgroud)

如果我在R中使用它,该函数可以正常工作.但是如果我在另一个应用程序(galaxy)中运行它,那些没有e-01例如的数字就不会4.835312e-04被抛出.

有没有另一种方法来表示p值,0.0004835312而不是4.835312e-04

Sac*_*amp 504

您可以使用以下代码有效删除打印中的科学记数法:

options(scipen=999)
Run Code Online (Sandbox Code Playgroud)

  • 如果你想把它还原为我:=),默认的`scipen`是'0`(参见`getOption("scipen")`) (50认同)
  • 是否有可能只在一个特定的命令中使用`scipen`,比如`print(x,dig = 6)`?如`summary(m1,scipen = 999)`或`print(x,scipen = 999)`?那会很酷.因为全球设置可能有问题. (32认同)
  • @TMS:答案在这里:http://stackoverflow.com/questions/21509346/r-displays-numbers-in-scientific-notation:``format(functionResult,scientific = FALSE);``或``as.整数(functionResult);`` (29认同)
  • 想要简化生活的R默认行为让它变得很糟糕 (4认同)
  • @TMS默认情况下如何禁用它,所以当新会话打开时你不必重做命令? (2认同)

Dee*_*net 19

总结所有现有答案

(并补充一些我的观点)

注意:在下面的解释中,value是以某种(整数/浮点)格式表示的数字。

解决方案1:

options(scipen=999)
Run Code Online (Sandbox Code Playgroud)

解决方案2:

format(value, scientific=FALSE);
Run Code Online (Sandbox Code Playgroud)

解决方案3:

as.integer(value);
Run Code Online (Sandbox Code Playgroud)

解决方案4:

您可以使用不以科学记数法打印的整数。您可以通过在数字后面添加“L”来指定您的数字是整数

paste(100000L)
Run Code Online (Sandbox Code Playgroud)

将打印100000

解决方案5:

使用“sprintf()”严格控制格式

sprintf("%6d", 100000)
Run Code Online (Sandbox Code Playgroud)

将打印100000

解决方案6:

prettyNum(value, scientific = FALSE, digits = 16)
Run Code Online (Sandbox Code Playgroud)


Pet*_*ter 5

format(99999999,scientific = F)
Run Code Online (Sandbox Code Playgroud)

99999999
Run Code Online (Sandbox Code Playgroud)

  • format(99999999,scientific = FALSE) 将生成“99999999”(字符字段,而不是数字) (2认同)