在 R 中导出 html table 并识别超链接
Export html table in R with recognition of hyperlinks
我知道这个问题已经被问过几次了,但不幸的是,所提供的答案不适合我的任务。这是一个例子:exporting table in R to HTML with hyperlinks
我需要将数据帧从 R 导出到 html,同时提供我可以单击以打开网站的 hyperlinks。以下 2 种格式仅导出为文本 not active hyperlinks.
预期的输出是在 html 中:link 列的网址为 link 我可以单击其中一个,link2 列显示名称,当我单击它时,它会打开相同的 link。现在发生的情况是,我在“link”列中看到一个不活动的 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")
我可能没有正确理解你的问题,但如果你只是想在 html 中呈现带有超链接的 table 和工作链接,一个简单的方法是创建一个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", "google")
link = c("https://en.wikipedia.org/wiki/Main_Page", "https://www.google.com/")
df = data.frame(name, link)
df %>% kable() %>% kable_styling()
当你将它编织到 html 时,你会得到一个带有有效超链接的漂亮 html 文件。
经过一些额外的阅读,我想我找到了一个不理想但有效的方法。
- 我不得不根据此资源稍微编辑 html 代码:https://www.w3schools.com/html/html_links.asp
- 我将参数从
tableHTML
更改为 escape=F
这是有效的代码:
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>
我知道这个问题已经被问过几次了,但不幸的是,所提供的答案不适合我的任务。这是一个例子:exporting table in R to HTML with hyperlinks
我需要将数据帧从 R 导出到 html,同时提供我可以单击以打开网站的 hyperlinks。以下 2 种格式仅导出为文本 not active hyperlinks.
预期的输出是在 html 中:link 列的网址为 link 我可以单击其中一个,link2 列显示名称,当我单击它时,它会打开相同的 link。现在发生的情况是,我在“link”列中看到一个不活动的 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")
我可能没有正确理解你的问题,但如果你只是想在 html 中呈现带有超链接的 table 和工作链接,一个简单的方法是创建一个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", "google")
link = c("https://en.wikipedia.org/wiki/Main_Page", "https://www.google.com/")
df = data.frame(name, link)
df %>% kable() %>% kable_styling()
当你将它编织到 html 时,你会得到一个带有有效超链接的漂亮 html 文件。
经过一些额外的阅读,我想我找到了一个不理想但有效的方法。
- 我不得不根据此资源稍微编辑 html 代码:https://www.w3schools.com/html/html_links.asp
- 我将参数从
tableHTML
更改为escape=F
这是有效的代码:
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>