将多列格式化为百分比。

huangapple go评论91阅读模式
英文:

R reactable format multiple columns as percentage

问题

  1. 我想用reactable包将我的数据框中的几列格式化为百分比。我知道如果逐行指定所有列,可以如何做到这一点,但我希望只需指定起始列号即可实现相同的输出,例如从第二列开始。
  2. reactable(
  3. data.frame(
  4. id = seq(1, 10, 1),
  5. sh = seq(.1, 1, .1),
  6. ar = seq(.1, 1, .1),
  7. br = seq(.1, 1, .1)
  8. ),
  9. columns = list(
  10. sh = colDef(format = colFormat(percent = TRUE, digits = 1)),
  11. ar = colDef(format = colFormat(percent = TRUE, digits = 1)),
  12. br = colDef(format = colFormat(percent = TRUE, digits = 1))
  13. )
  14. )
英文:

I'd like format several columns in my dataframe as percentage with reactable package. I know how can I do it if I specify all of them row by row, but I'd like to achieve same output only if I specify starting column number, in this case from 2nd column.

  1. reactable(
  2. data.frame(
  3. id = seq(1, 10, 1),
  4. sh = seq(.1, 1, .1),
  5. ar = seq(.1, 1, .1),
  6. br = seq(.1, 1, .1)
  7. ),
  8. columns = list(
  9. sh = colDef(format = colFormat(percent = TRUE, digits = 1)),
  10. ar = colDef(format = colFormat(percent = TRUE, digits = 1)),
  11. br = colDef(format = colFormat(percent = TRUE, digits = 1))
  12. )
  13. )

答案1

得分: 0

一个选项是使用例如 lapply 来创建一个命名的 colDef 列表:

  1. library(reactable)
  2. dat <- data.frame(
  3. id = seq(1, 10, 1),
  4. sh = seq(.1, 1, .1),
  5. ar = seq(.1, 1, .1),
  6. br = seq(.1, 1, .1)
  7. )
  8. cols <- names(dat)[-1]
  9. col_defs <- lapply(
  10. cols,
  11. \(x) colDef(format = colFormat(percent = TRUE, digits = 1))
  12. )
  13. names(col_defs) <- cols
  14. reactable(
  15. dat,
  16. columns = col_defs
  17. )

将多列格式化为百分比。

英文:

One option would be to use e.g. lapply to create a named list of colDefs:

  1. library(reactable)
  2. dat &lt;- data.frame(
  3. id = seq(1, 10, 1),
  4. sh = seq(.1, 1, .1),
  5. ar = seq(.1, 1, .1),
  6. br = seq(.1, 1, .1)
  7. )
  8. cols &lt;- names(dat)[-1]
  9. col_defs &lt;- lapply(
  10. cols,
  11. \(x) colDef(format = colFormat(percent = TRUE, digits = 1))
  12. )
  13. names(col_defs) &lt;- cols
  14. reactable(
  15. dat,
  16. columns = col_defs
  17. )

将多列格式化为百分比。

huangapple
  • 本文由 发表于 2023年7月27日 23:03:16
  • 转载请务必保留本文链接:https://go.coder-hub.com/76781066.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定