【发布时间】:2021-08-16 08:38:34
【问题描述】:
所以我在R 中进行了一些分析,我将其存储在data.frame() 中,并且在程序结束时我想为用户打印一个易于阅读的表格。我可以将数据框返回给用户,但我希望列标题名称带有空格或特殊字符(特别是我希望有一个百分号)。所以我的想法是我可以使用print() 或paste() 函数来输出一种表格格式。
所以在运行代码结束时,我希望输出看起来完全像下面这样:
X Y P/E%
0.66120836 0.379 0.99
0.57320298 0.028 0.50
0.77160759 0.024 0.96
0.01532545 0.565 0.37
0.96046884 0.066 0.77
这里是一些示例代码来生成我想要输出的数据:
x = runif(5)
y = round(runif(5),3)
z = round(runif(5),2)
现在我可以使用data.frame() 命令,但它不允许我使用像P/E% 这样的列标题,例如
A = data.frame(X=x,Y=y,PE=z)
因为它不喜欢 / 或 % 符号。我能想到的解决问题的方法如下:
temp = paste("X","Y","P/E% \n",sep=" ")
for(i in 1:5){
temp = paste(temp,paste(x[i],y[i],z[i],"\n",sep=" "),sep=" ")
}
但如果列标题很长或位数不同,则间距很奇怪。如果我使用我喜欢的粘贴选项,有没有办法让它无论数据的形状或位数如何,都能很好地对齐列?比如左对齐还是右对齐?
最后,这段代码将进入一个R闪亮的应用程序,因此能够解决这个问题而不必让用户加载一个包来解决它会非常好。
【问题讨论】:
-
由于您将其放入 Shiny,您需要查看
renderTable,它已经为您解决了这个问题(通过xtable,您也可以自己使用它)。knitr::kable也可用于格式化表格。
标签: r