gpt4 book ai didi

r - 我可以控制 htmlTable 中的自动换行或列宽吗?

转载 作者:行者123 更新时间:2023-12-04 12:13:47 26 4
gpt4 key购买 nike

我爱上了 htmlTable() 包中的 Gmisc 函数。我的 table 比以前漂亮多了。在我的表中,我有一列包含相当大的条目,我很难将它保持足够宽,以至于数字不会换行。我会想象按列的 nowrap 参数或 column.width 参数都适用于此,但我似乎找不到。有没有办法做到这一点?还是我应该满足于“非常好”?

最佳答案

我知道我参加聚会有点晚了,但您可以通过以下几种方式进行。作为记录,有很多方法可以调整这些表格,使它们看起来完全符合您的要求。因此,IMO 的选项是 1) 对每个单元格着色选项、单元格高度和宽度、行高和宽度、列高和宽度等都有各种参数;或 2) 让用户想办法。

话虽如此,这里有一些可能的解决方案:

library(Gmisc)

## solution 1: quick, dirty
tbl <- `colnames<-`(matrix(1:9, 3, 3), c('one','two','three'))
(tmp <- htmlTable(tbl))
tbl[1,1] <- 'this is a very long cell, this is a very long cell, this is a very long cell, this is a very long cell'
(tmp <- htmlTable(tbl))
tbl[1,1] <- gsub(' ', '&nbsp;', tbl[1,1])
htmlTable(tbl)

基本上只是折叠任何空格并使用 nbsp 代替

下一个解决方案实际上使用了一些合法的 html 标签:
## solution 2:
tbl <- `colnames<-`(matrix(1:9, 3, 3), c('one','two','three'))
tbl[1,1] <- 'this is a very long cell, this is a very long cell, this is a very long cell, this is a very long cell'

(tmp <- htmlTable(tbl))

(tmp <- gsub('<td', '<td nowrap="nowrap"; ', tmp))

上面的解决方案将所有单元格样式 (td) 替换为包含 nowrap 的单元格样式。替换所有单元格可能是也可能不是你想要的,这让我选择了下一个选项:regex
## solution 3: regex
tbl <- `colnames<-`(matrix(1:9, 3, 3), c('one','two','three'))
tbl[1,1] <- 'this is a very long cell, this is a very long cell, this is a very long cell, this is a very long cell'

(tmp <- htmlTable(tbl))

regmatches(tmp, gregexpr('<td.*?</td>', tmp))
# [[1]]
# [1] "<td style='text-align: left;'>this is a very long cell, this is a very long cell, this is a very long cell, this is a very long cell</td>"
# [2] "<td style='text-align: center;'>4</td>"
# [3] "<td style='text-align: center;'>7</td>"
# [4] "<td style='text-align: left;'>2</td>"
# [5] "<td style='text-align: center;'>5</td>"
# [6] "<td style='text-align: center;'>8</td>"
# [7] "<td style='border-bottom: 1px solid grey; text-align: left;'>3</td>"
# [8] "<td style='border-bottom: 1px solid grey; text-align: center;'>6</td>"
# [9] "<td style='border-bottom: 1px solid grey; text-align: center;'>9</td>"

我没有继续,因为我认为上面的一个很适合,并且正则表达式不是我的强项(html 或 css 都不是)。

我相信还有其他类似的选择。例如,您可以尝试在列标签中插入宽度标签。

关于r - 我可以控制 htmlTable 中的自动换行或列宽吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25417633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com