Как создать ярлык / всплывающую подсказку на основе столбца списка в data.frame?
Я хочу создать карту избирательного округа Великобритании в листовке, в которой при наведении указывается название избирательного округа и подробный результат.
Данные содержатся в таблице с двумя столбцами:
- избирательный округ, который содержит название
- результат, представляющий собой столбец списка в каждой ячейке, содержащий data.frame, включающий имя кандидата, партию, голоса, % и порядок.
Я включил образец двух избирательных округов ниже
df <- structure(list(constituency = c("Knowsley", "Bristol West"),
result = list(structure(list(name = c("George Howarth", "James Spencer",
"Neil Miney", "Carl Cashman", "Steve Baines"), party = c("Labour",
"Conservative", "UKIP", "LD", "Green"), votes = c(47351L,
5137L, 1285L, 1189L, 521L), pc = c(85.34, 9.26, 2.32, 2.14,
0.94), order = 1:5), .Names = c("name", "party", "votes",
"pc", "order"), row.names = c(NA, -5L), class = c("tbl_df",
"tbl", "data.frame")), structure(list(name = c("Thangam Debbonaire",
"Annabel Tall", "Molly Scott Cato", "Stephen Williams", "Jodian Rodgers"
), party = c("Labour", "Conservative", "Green", "LD", "Money Free Party"
), votes = c(47213L, 9877L, 9216L, 5201L, 101L), pc = c(65.93,
13.79, 12.87, 7.26, 0.14), order = 1:5), .Names = c("name",
"party", "votes", "pc", "order"), row.names = c(NA, -5L), class = c("tbl_df",
"tbl", "data.frame")))), row.names = c(NA, -2L), class = c("tbl_df",
"tbl", "data.frame"), .Names = c("constituency", "result"))
Если бы я просто хотел, чтобы в лейбле был избирательный округ, я бы закодировал это так, чтобы можно было применить к выводу листовки:
labels <- sprintf(
df$constituency
) %>% lapply(htmltools::HTML)
Но я хочу добавить в результат детали.
1 ответ
Решение
Как насчет этого?
labels = lapply(1:length(df$result), function(i) {
tmp = format(df$result[[i]])
tmp = tmp[3:length(tmp)]
tmp[1] = df$constituency[i]
htmltools::HTML(paste(tmp, collapse = "<br>"))
})