微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过识别超链接导出R中的html表

如何解决通过识别超链接导出R中的html表

我知道这个问题之前曾被问过几次,但不幸的是,所提供的答案不适合我的任务。这是一个例子:exporting table in R to HTML with hyperlinks

我需要将数据框从 R 导出到 html,同时提供可以单击以打开网站的超链接。以下 2 种格式仅导出为文本而非活动超链接

预期的输出是在 html 中:列链接具有网址作为链接,我可以单击一个,列 link2 显示名称,当我单击它时,它会打开相同的链接。现在发生的情况是,我在“link”列中看到了一个非活动链接,并在“link2”列中看到了 HTML 代码

1   wiki    https://en.wikipedia.org/wiki/Main_Page <a href="https://en.wikipedia.org/wiki/Main_Page" target="_blank">wiki</a>
2   google  https://www.google.com/ <a href="https://www.google.com/" target="_blank">google</a>

我试图深入研究包参数,但找不到答案。 https://cran.r-project.org/web/packages/tableHTML/tableHTML.pdf

谢谢

这是我正在使用的代码

name = c("wiki","google")
link = c("https://en.wikipedia.org/wiki/Main_Page","https://www.google.com/")

df = data.frame(name,link)
df$link2 = paste0("<a href='",df$link,">",df$name,"</a>",sep="")

tablehtml::write_tablehtml(tablehtml(df),file = "df.html") 

解决方法

在额外阅读了一些之后,我想我找到了一种并不理想但有效的方法。

这是有效的代码:

library(tableHTML)

name = c("wiki","google")
link = c("https://en.wikipedia.org/wiki/Main_Page","https://www.google.com/")

df = data.frame(name,link)
 
df$link2 = paste('<a href="',df$link,'" target="_blank">',df$name,'</a>',sep="")


tableHTML::write_tableHTML(tableHTML(df,escape = F),file = "df.html") 
,

非常感谢您的提问。它激励我们在昨天发布的 tableHTML 的新版本 2.1.0 中创建一个默认函数。

您现在可以使用函数 make_hyperlink

# install.packages("tableHTML") # make sure version 2.1.0 is used

library(tableHTML)

name <-  c("wiki","google")
link <- c("https://en.wikipedia.org/wiki/Main_Page","https://www.google.com/")

然后使用新函数创建 HTML。它需要超链接,即 href。您还可以传递第二个参数以用作名称:

hyperlinks <- make_hyperlink(link,name)

然后继续创建一个 tableHTML

df = data.frame(name = hyperlinks)

df %>% 
 tableHTML(rownames=FALSE,escape=FALSE) %>% 
 tableHTML::write_tableHTML(file = "df.html") 

结果如下:

<table style="border-collapse:collapse;" class=table_1620 border=1>
<thead>
<tr>
  <th id="tableHTML_header_1">name</th>
</tr>
</thead>
<tbody>
<tr>
  <td id="tableHTML_column_1"><a href=https://en.wikipedia.org/wiki/Main_Page>wiki</a></td>
</tr>
<tr>
  <td id="tableHTML_column_1"><a href=https://www.google.com/>google</a></td>
</tr>
</tbody>
,

我可能没有正确理解您的问题,但是如果您只想将带有超链接的表格以带有工作链接的 html 呈现,一个简单的方法是创建一个 Markdown 文件,然后将其“编织”到rstudio 中的 html。

---
title: "table_to_html"
output: html_document
---

```{r setup,include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(kableExtra)
name = c("wiki",link)

df %>% kable() %>% kable_styling()

当你把它编成 html 时,你会得到一个很好的带有超链接的 html 文件。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。