R3.2.3/openxlsx 3.0.0

我有几个数据框,我正在用 openxlsx 写入 Excel 工作簿。其中一个数据帧包含诸如 0.07 之类的值。和

createStyle(numFmt='PERCENTAGE')

我在工作簿中得到 7.00% 作为输出。到现在为止还挺好。但我想要 7% 作为输出。我尝试了几种方法,例如堆叠样式,
createStyle(numFmt=c('PERCENTAGE','0'))

createStyle(numFmt='PERCENTAGE 0')

但它们要么导致错误,要么给出不需要的结果。任何正确方向的建议都将受到欢迎。升级到较新版本的 openxlsx 不是一种选择。

最佳答案

您可以使用 Excel 的格式代码创建没有小数位的百分比样式,然后将该样式应用于特定单元格。例如:

library(openxlsx)

# Fake data
set.seed(2)
dat = data.frame(v1=LETTERS[1:10], v2=runif(10), v3=letters[1:10], v4=runif(10))

# Create an Excel workbook object and add a worksheet
wb = createWorkbook()
sht = addWorksheet(wb, "Data")

# Create a percent style
pct = createStyle(numFmt="0%")

# Add fake data to the worksheet we just created
writeData(wb, sht, dat)

# Add the percent style to the desired cells
addStyle(wb, sht, style=pct, cols=c(2,4), rows=2:(nrow(dat)+1), gridExpand=TRUE)

saveWorkbook(wb, "my_workbook.xlsx")

使用 Excel 百分比格式的一个优点是电子表格中的基础数据仍然是数字,而不是文本字符串。

这是工作表的样子:

r - 在 R 包 openxlsx 中格式化百分比-LMLPHP

关于r - 在 R 包 openxlsx 中格式化百分比,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48063019/

10-15 14:02