弹性表中每一行的超链接

时间:2019-04-02 15:58:12

标签: r flextable formattable

我有一个数据框

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"))
  

A B链接

     

a 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”,值= c(1L,2L,3L,4L,1L,:     替换有16行,数据有4

如果表中只有1行,则上面的R语句有效,但对多行无效。你能帮我么。 另外,在链接之后,是否有任何方法可以隐藏/删除“链接”列。

1 个答案:

答案 0 :(得分:1)

首先,有一个问题,版本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选择要显示的列。