我想在一个a中包含sign%,data.frame以便data.frame稍后在列的每一行print(xtable(data.frame....))的数值旁边打印一个%符号.data2Values in %
数据示例:
data1 <- rnorm(5,10,2)
data2 <- round(rexp(5,2),1)
frameData <- data.frame(data1,data2)
colnames(frameData) <- c("Measurement","Values in %")
Run Code Online (Sandbox Code Playgroud)
我尝试过这样的事情:
data1 <- rnorm(5,10,2)
data2 <- round(rexp(5,2),1)
data3 <- rep("%",5)
frameData <- data.frame(data1,data2,data3)
colnames(frameData) <- c("Measurement","Values in %","")
Run Code Online (Sandbox Code Playgroud)
但我不能让标志足够接近,后来print(xtable(frameData....))距离放大了.
@AnandaMahto使用基地R.给出了一个很好的答案
如果您愿意使用图书馆,那么有一种更简单的方法.该scales库有许多用于格式化数字的函数:
library(scales)
> percent(seq(10)/10)
[1] "10%" "20%" "30%" "40%" "50%" "60%" "70%" "80%" "90%" "100%"
Run Code Online (Sandbox Code Playgroud)
最后,因为数字类型不能保存%值,所以可以向data.frame添加一个属性,然后在打印时使用它:
attr(frameData,"pctCols") <- c(2)
printPct <- function(x) { require(taRifx); japply(x,attr(x,"pctCols"),percent) }
> printPct(frameData)
Measurement Values in %
1 11.992833 160%
2 12.556494 NaN%
3 10.837724 200%
4 9.141887 200%
5 8.056046 100%
Run Code Online (Sandbox Code Playgroud)