【发布时间】:2014-05-13 13:04:00
【问题描述】:
我想用 R 写一些长表,并希望能够控制每列的位数和格式。
前面已经讨论过 R 中的控制数字 here,但我想要一些列有两位数,而其他列写成 e 的指数。
我拥有的是:
> tab = format(round(Ind_B, 2), nsmall = 2)
logFC AveExpr t P.Value adj.P.Val B
PCL1 -1.50 7.90 -7.78 0.00 0.05 3.11
CYB5 -1.33 9.48 -7.29 0.00 0.05 2.66
YPL272C -1.14 9.84 -6.75 0.00 0.05 2.12
...
write.table(tab,file="table.txt")
我想要的是看起来像的东西
logFC AveExpr t P.Value adj.P.Val B
PCL1 -1.50 7.90 -7.78 2.02e-05 4.66e-2 3.11
CYB5 -1.33 9.48 -7.29 3.46e-05 4.66e-2 2.66
YPL272C -1.14 9.84 -6.75 6.44e-05 4.66e-2 2.12
...
输入数据:
> dput(Ind_B[1:2,])
structure(list(logFC = c(-1.49824500263345, -1.33422303887252,
-1.13608497712886), AveExpr = c(7.89908829447163, 9.47578470147621,
9.83832131029262), t = c(-7.77827558246803, -7.29052621516572,
-6.75274781106625), P.Value = c(2.0278944567463e-05, 3.46076798843179e-05,
6.43472955950628e-05), adj.P.Val = c(0.0466525340114348, 0.0466525340114348,
0.0466525340114348), B = c(3.11252319339325, 2.65697661688921,
2.11618901483842)), .Names = c("logFC", "AveExpr", "t", "P.Value",
"adj.P.Val", "B"), row.names = c("PCL1", "CYB5", "YPL272C"), class = "data.frame")
【问题讨论】:
-
在每一列上应用
sprintf? -
你能详细说明你会怎么做吗?
-
不知道
Ind_B是个什么样的数据结构。您需要提供一些输入数据,即dput(Ind_B)。 -
输入数据添加到帖子
标签: r formatting digit