如何禁用科学记数法?
我有一个包含 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
选择方式:
anovatest<- results[ - which(results$pvalues_anova < 0.8) ,]
如果我在 R 中使用它,该函数工作得很好。但是如果我在另一个应用程序(galaxy)中运行它,则没有 e-01
的数字,例如 4.835312e -04
不会被丢弃。
是否有另一种方法来表示 p 值,例如 0.0004835312
而不是 4.835312e-04
?
I have a dataframe with a column of p-values, and I want to make a selection on these p-values.
> 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
Selection way:
anovatest<- results[ - which(results$pvalues_anova < 0.8) ,]
The function works really fine if I use it in R. But if I run it in another application (galaxy), the numbers which don't have e-01
e.g. 4.835312e-04
are not thrown out.
Is there another way to notate p-values, like 0.0004835312
instead of 4.835312e-04
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您可以使用以下代码有效地删除打印中的科学记数法:
You can effectively remove scientific notation in printing with this code:
给出
gives
总结所有现有答案
(并添加一些我的观点)
注意:在下面的解释中,
value
是以某种(整数/浮点)格式表示的数字。解决方案 1:
解决方案 2:
解决方案 3:
解决方案 4:
您可以使用不以科学记数法打印的整数。您可以通过在数字后面添加“L”来指定您的数字是整数,
将打印
100000
解决方案 5:
使用“sprintf()”严格控制格式
将打印
100000
解决方案6:
Summarising all existing answers
(And adding a few of my points)
Note : In the below explanation,
value
is the number to be represented in some (integer/float) format.Solution 1 :
Solution 2 :
Solution 3 :
Solution 4 :
You can use integers which don't get printed in scientific notation. You can specify that your number is an integer by putting an "L" behind it
will print
100000
Solution 5 :
Control formatting tightly using 'sprintf()'
will print
100000
Solution 6 :
我还发现,当我不需要尾随零时,
prettyNum(..., science = FALSE)
函数对于打印很有用。请注意,这些函数对于打印目的很有用,即这些函数的输出是字符串,而不是数字。I also find the
prettyNum(..., scientific = FALSE)
function useful for printing when I don't want trailing zeros. Note that these functions are useful for printing purposes, i.e., the output of these functions are strings, not numbers.除了现有的答案之外,例如,如果有人想在整个列上使用前面提到的
format()
和 dplyr,那么format()
需要被包裹在 lambda 函数中:In addition to the existing answers, if, for example, one would like to use the previously mentioned
format()
with dplyr on the whole column, thenformat()
needs to be wrapped inside the lambda function:@yuskam 将其放在评论中(即使用
withr
)。如果您正在开发一个函数/包,这会很有帮助。我在这里回答是为了提高该建议的知名度。我的机器上的输出:
@yuskam put this in a comment (i.e. use
withr
) further up. If you're developing a function/package this is helpful. I am answering here to increase the profile of that suggestion.Output on my machine: