a要素を項目とするul要素を、Rのデータフレームから作成する方法について検討しました。
a要素に関するデータフレーム(内容、href属性値、download属性値)をdfとします。
df <- data.frame(contents = c("link1", "link2", "link3"), href = c("url1", "url2", "url3"), download = c("filename1", "filename2", "filename3"))
今回検討した、a要素を項目とするul要素の作成手順は以下になります。
## a要素のリスト作成 aList <- pmap(df, ~tags$a(list(...)$contents, href = list(...)$href, download = list(...)$download)) ## ul要素の作成 tags$ul(map(aList, ~tags$li(.x)))
この記事で使用したRとパッケージのバージョンを記載しておきます。
バージョンが異なると、動作や表示も若干異なる場合があるからです。
- R 3.6.1
- htmltools 0.3.6
- purrr 0.3.2
背景
こちらの記事で、htmltoolsパッケージを使い、htmlのul要素を作成しました。
私が実際に使うときは、ul要素の項目はリンク(a要素)になることが多いです。
また、リンクの名称やURLはファイルから読み込み、データフレームに格納して使うことが想定されます。
そのため、データフレームに格納されたa要素の情報をもとに、ul要素を作成する方法について検討する運びとなりました。
方針
こちらの記事により、ul要素作成には項目をリスト化すれば良いことが分かりました。
そのため、データフレームからa要素のリストが作れれば、目的は達成できそうです。
データフレームから、a要素を項目とするul要素を作る
まず、データフレームを用意します。
実際に使うときは、ファイルから読み込んだデータフレームになります。
df <- data.frame(contents = c("link1", "link2", "link3"), href = c("url1", "url2", "url3"), download = c("filename1", "filename2", "filename3")) df
contents href download 1 link1 url1 filename1 2 link2 url2 filename2 3 link3 url3 filename3
a要素のリストを作成します。
library(htmltools) library(purrr) aList <- pmap(df, ~tags$a(list(...)$contents, href = list(...)$href, download = list(...)$download)) aList
[[1]] <a href="url1" download="filename1">link1</a> [[2]] <a href="url2" download="filename2">link2</a> [[3]] <a href="url3" download="filename3">link3</a>
あとは、こちらの記事どおりにすれば、ul要素は作成できます。
tags$ul(map(aList, ~tags$li(.x)))
<ul> <li> <a href="url1" download="filename1">link1</a> </li> <li> <a href="url2" download="filename2">link2</a> </li> <li> <a href="url3" download="filename3">link3</a> </li> </ul>
まとめ
a要素を項目とするul要素を、データフレームから作成する方法について検討しました。
だいぶ実践的になったかなと思います。
では。
--
YouTube: ミサキさん
問い合わせ先
Mail: caprico.aries@gmail.com
Twitter: https://twitter.com/caprico_aries(無言フォローもお気軽に)
コメント
[…] こちらの記事を参考に、ul要素を作ります。 […]
[…] Rのデータフレームから、a要素を項目とするul要素を作る(htmltools利用) […]