为许多不同的图创建 leaflet.minicharts 个弹出标签

Creating leaflet.minicharts popup labels for many different plots

我正在使用 R leaflet.minicharts 为几个输入文件中的每一个创建绘图。我想为每个迷你图表中的每个饼图或条形图创建自定义标签,但我遇到了代码问题。

我有一个类似于以下的数据框 (df):

    location grp1 grp2 grp3 grp4
1   loc1     1    0    0    0
2   loc2     0    5    0    1
3   loc3     1    0    3    0
4   loc4     0    2    2    2
5   loc5     0    1    0    7

并且想为每个图中的每个饼图(或条形图)创建一个弹出标签,遵循这种格式:

loc1
grp1: 1
grp2: 0
grp3: 0
grp4: 0

根据另一个post ()我看到我的标签格式应该是这样的:

my_popups <- df %>%
   group_by(location) %>%
   mutate(popup = paste0("<h3>", location,
   paste("grp1:", grp1, "<b>", "grp2:", grp2, "<b>", "grp3:", grp3, "<b>", "grp4:", grp4, "<b>", collapse = "<br>"))) %>%
   pull(popup)

但是我如何自动 my_popups 为几个不同的输入文件生成自定义标签,这些文件将具有不同的 grp 级别(例如,此处显示 grp1 到 grp4,但我也有 grp1 到 grp5 的输入,等等)。我不想为每个输入手动输入此代码的 "paste" 部分。

我用我的数据框列名称的一部分创建了一个向量,如下所示:

[1] "grp1"     "grp2"     "grp3"     "grp4" 

我认为应该有一种方法可以以 my_popups 的正确格式粘贴它,但我不太确定如何继续。任何提示都会有所帮助!

我认为这也许可以,很可能,当然,只需做一些小的改动:

cols <- colnames(df)     
coln <- cols[grepl("grp", cols)]
coln <- paste0("<b>",coln[2:length(coln)],":" )
coln<-c(coln, "<b>")
df$popup <- apply(df[,-1],1,paste,coln,collapse="") 
df %>% mutate(popup = paste0("<h3>", location,"grp1:", popup))

一些小调整以获得@nrcombs 想要的格式:

cols <- colnames(df)     
coln <- cols[grepl("grp", cols)]
coln <- paste0("<br>",coln[2:length(coln)],": " )
coln<-c(coln, "<br>")
df$popup <- apply(df[,-1],1,paste,coln,collapse="") 
df %>% mutate(popup = paste0("<h3>", location, "</h3><br>", "grp1: ", popup))