r - 使用 HTML 为传单设计悬停文本 - 如何为每个逗号插入中断
问题描述
我正在使用传单来绘制观察结果。我还使用htmltools来格式化显示每个观察变量的悬停文本。
问题是,我想要包含许多字符串的变量hobbies显示在每一行。每个爱好用逗号分隔。
安装和加载所需的包:
install.packages("leaflet")
library(leaflet)
install.packages("htmltools")
library(htmltools)
创建虚拟观察:
name <- c("john", "mary")
age <- c(20, 29)
gender <- c("male", "female")
hobbies <- c("fishing, football, video games", "painting, skiing, body pump, data science")
lat <- c(-12.80103, -12.37845)
long <- c(130.9558, 130.8770)
df <- as.data.frame(cbind(name, age, gender, hobbies, lat, long))
使用传单创建地图:
# Designing hover text with HTML
# lapply here necessary - my real data has much more than 2 rows#
labs <- lapply(seq(nrow(df)), function(i) {
paste0( '<p>', "Name : ", df[i, "name"], '<p></p>',
"Age : ", df[i, "age"], ', ',
"Gender : ", df[i, "gender"],'</p><p>',
"Hobbies : ", df[i, "hobbies"], ','
)
})
leaflet(df) %>%
addProviderTiles("Esri.WorldImagery") %>%
addCircleMarkers(lng = ~ long,
lat= ~ lat,
label = lapply(labs, HTML),
clusterOptions = markerClusterOptions()
)
我得到以下输出:
我不熟悉 html 语法。我不知道如何为每个爱好添加断线
以显示在单独的行上,并带有如下选项卡:
Name : mary
Age : 29, Gender : female
Hobbies : painting
skiing
body pump
data science
解决方案
您可以gsub
在hobbies
向量上使用逗号替换每个逗号,后跟换行符:
hobbies <- c("fishing, football, video games", "painting, skiing, body pump, data science") %>%
gsub(",", ",<br>", .)
然后构建您的数据框并正常生成标签。
如果您希望爱好列表彼此对齐,您可以简单地在换行符后插入一些 html 空白字符。我发现四 
+一 
填充了适量的空间。
hobbies <- c("fishing, football, video games", "painting, skiing, body pump, data science") %>%
gsub(",", ",<br>     ", .)
最后,请注意,为了让您的示例运行,我必须更改df <- as.data.frame(cbind(name, age, gender, hobbies, lat, long))
为df <- data.frame(name, age, gender, hobbies, lat, long)
,因为您提供的代码将您的坐标转换为导致传单抛出错误的因素。我认为这只是你把这个例子放在一起的方式的一个错误,而不是你的真实数据。
推荐阅读
- jquery - 以 HTML 格式发布 SOAP 请求并获得响应
- php - PHP 只获取 JSON 结果的第一页
- python - 为什么 Python 说这两个分数是一样的?
- php - Apache 是否可以在 Windows 上的特定目录中运行不同版本的 PHP?
- javascript - 使用 Karma 进行测试时,window.customElements.whenDefined 从未得到解决
- shell - 比较两个时间戳列,如果差异大于 1 小时,则触发电子邮件警报(bash)
- asp.net-core - 为请求记录添加自定义中间件时,模型绑定停止工作
- amazon-dynamodb - DynamoDB query for attlibute set
- sql - 在 SQL 查询中聚合和应用逻辑
- three.js - 环境贴图有边