【发布时间】:2014-08-08 01:11:35
【问题描述】:
我在数据框的一列中有一系列 10 个 p 值:
df$p <- c(0.00000005, 0.000001, 0.0001, 0.001, 0.01, 0.05, 0.1, 0.2, 0.5, 1)
由于以十进制读取较大的 p 值和以科学计数法读取较小的 p 值更容易,我希望它的格式如下:
5e-8, 1e-6, 1e-4, 0.001, 0.01, 0.05, 0.1, 0.2, 0.5, 1
但无论我如何使用options(scipen=whatever) 和format(df$p, scientific=whatever),R 都会以相同的方式显示所有元素(即全部以十进制表示,或全部以科学计数法表示)。
我想要的是让 R 对这个向量的每个元素单独应用科学惩罚,因此它们显示为十进制或 SN,具体取决于哪个可以节省更多空间。
【问题讨论】:
-
mapply(format, df$p)或sapply(df$p, format)是否足够?结果是一个字符向量。 -
@Frank,两者都很好用! @rawr,
format.pval(df$p, digits=8, drop0trailing=T)工作!
标签: r vector format options scientific-notation