r - 通过 FlexTable 列表应用条件文本修改
问题描述
我有一个包含 5 个不同列的 32 个弹性表的列表。我想根据条件将颜色和粗体功能应用于 2 个单独的列。
我的方法如下:
###Create a function that takes an input x (the flextable) and an input y (the values that will be conditioned on
f <- function(x,y){
x <- color( x,i = y <= 0.05, j=4,color="red")
x <- bold( x, i = y <= .05, j=4)
x
我按如下方式创建 y 值。tablerep 包含 32 个数据框的列表,我要调整的列是第 4 列:
highlight <- lapply(tablerep,function(i) sprintf('%.3f',as.numeric(as.character(unlist(i[4])))))
然后,我使用 mapply 函数根据条件值 y 将该函数应用于 flextables x 列表:
MyFT <- mapply(f,MyFT,highlight)
出于某种原因,我的输出如下所示:
> MyFT
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
header List,8 List,8 List,8 List,8 List,8 List,8 List,8 List,8 List,8
body List,8 List,8 List,8 List,8 List,8 List,8 List,8 List,8 List,8
footer List,8 List,8 List,8 List,8 List,8 List,8 List,8 List,8 List,8
col_keys Character,5 Character,5 Character,5 Character,5 Character,5 Character,5 Character,5 Character,5 Character,5
caption List,2 List,2 List,2 List,2 List,2 List,2 List,2 List,2 List,2
blanks Character,0 Character,0 Character,0 Character,0 Character,0 Character,0 Character,0 Character,0 Character,0
properties List,2 List,2 List,2 List,2 List,2 List,2 List,2 List,2 List,2
[,10] [,11] [,12] [,13] [,14] [,15] [,16] [,17] [,18]
而不是弹性表列表。任何人都可以提供有关为什么会这样的见解吗?
解决方案
这是mapply
因为参数的默认值为SIMPLIFY
TRUE,所以将结果简化为矩阵。要停止它并获取列表,请使用:
MyFT <- mapply(f,MyFT,highlight, SIMPLIFY = FALSE)
推荐阅读
- python-3.x - Eyed3 将 ID3 YEAR 标签写入 Mp3
- flutter - 如何使用 ChangeNotifier?
- react-native - 如何在 React Native 中使用 SSML 标签实现 Text to Speech?
- python - 查找 Max() Datetime Pandas Python
- linux-kernel - 为什么 IOCTL 命令号在整个系统中应该是唯一的?
- javascript - 打印内容来自服务器的 HTML 文档
- python - 枕头图像生成问题 - 合并多个图像
- java - Selenium Java-下拉选择,其中样式-显示为无
- javascript - 将字符串参数传递给 onclick() 函数并以模式显示
- reactjs - 在 React 的状态字典中设置字典