如何在kable中将0替换为空白

5
我将使用kable函数创建一个相当大的HTML表格,其中有很多0。为了更清晰地显示相关信息,我正在尝试通过用空格替换它们来隐藏表格中的0。
目前,我正在尝试以下方式,但它不起作用:
my_table = knitr::kable(...)
cat(gsub(0," ",my_table), sep = '\n')

类似于上述方法可以去除缺失值,但是我似乎无法使用它来去除0的值。

提前感谢您的帮助!

编辑:数据示例:

Product = c('A','B','A','A','C','B')
Month = c('Jan', 'Feb', 'Feb', 'Apr', 'Jan', 'Feb')
my_data = data.frame(Product, Month)
my_table = table(my_data)
kable(my_table) #This has the 0's which I don't want

Product | Month

A       | Jan

B       | Feb

A       | Feb

A       | Apr

C       | Jan

B       | Feb

当前输出:

----Jan  Feb  Mar Apr

A  1 1 0 1

B  0 2 0 0

C  1 0 0 0

期望输出:

----Jan Feb Mar Apr

A 1 1 - 1

B - 2 - -

C 1 - - -

除了“-”将被替换为空格而不是破折号外。
编辑2:没关系,我已经搞定了,尽管这很不正规。
my_kable = knitr::kable(my_table)
gsub(0, ' ', my_kable)

笑死了


你能提供一个玩具示例,说明你将什么数据放入 knitr::kable() 中吗? - Phil
尝试引用0 - "0" - missuse
我添加了一个玩具示例,展示我正在使用的数据类型。 - Ajay Phatak
最好您提供代码,这样我们就可以轻松导入它。例如:data.frame("Product" = LETTERS[1:4], etc.) - Phil
好的,我为一个玩具数据集添加了一些代码。 - Ajay Phatak
显示剩余2条评论
3个回答

3
你原来的gsub没有起作用的原因是它将表格压缩为向量。保持表格结构的多种选项之一是使用replace函数:
knitr::kable(replace(my_table, my_table==0, ""))

#|   |Apr |Feb |Jan |
#|:--|:---|:---|:---|
#|A  |1   |1   |1   |
#|B  |    |2   |    |
#|C  |    |    |1   |

0

您可以使用基本的R gsub()函数:

gsub(0, " ", kable(my_table))

获取:

|   | Apr| Feb| Jan|
|:--|---:|---:|---:|
|A  |   1|   1|   1|
|B  |    |   2|    |
|C  |    |    |   1|

0

你可以尝试:

gsub(" 0", "  ", kable(my_table))

为了避免在非零数字中替换零。此外,“gsub”解决方案使数字右对齐,与“replace”解决方案相反。 - mdeleeuw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接