首页 > 解决方案 > flextable 中每一行的超链接

问题描述

我有一个数据框

df = data.frame("A" = c("a","b","c","d"), "B" = c(1,2,3,4), "link" = c("www.a.com", "www.b.com", "www.c.com", "www.d.com"))

AB链接

一个 1 www.a.com

b 2 www.b.com

c 3 www.c.com

d 4 www.d.com

我制作格式表

dt.ft <- regulartable(data = dt[, list(A, B, link)])

我想让“A”列中的值与“链接”列中的相应值超链接。

我试过

compose(x = dt.ft, j = "A", value = as_paragraph( hyperlink_text(x = A, url = link)))

我收到以下错误:

$<-.data.frame( *tmp*, "url", value = c(1L, 2L, 3L, 4L, 1L, ) 中的错误:替换有 16 行,数据有 4

如果表中只有 1 行,则上述 R 语句有效,但无法处理多行。你能帮我么。另外,链接后有什么方法可以隐藏/删除“链接”列。

标签: rflextableformattable

解决方案


首先,有一个问题,版本 0.5.2 应该修复它。

library(flextable)

df = data.frame("A" = c("a","b","c","d"), "B" = c(1,2,3,4), "link" = c("www.a.com", "www.b.com", "www.c.com", "www.d.com"))
dt.ft <- flextable(data = df, col_keys = c("A", "B"))
dt.ft <- compose(x = dt.ft, j = 1, value = as_paragraph( hyperlink_text(x = A, url = link)))
dt.ft

该示例还显示了如何使用参数选择要显示的列col_keys


推荐阅读