Создание всплывающих ярлыков leaflet.minicharts для разных графиков - PullRequest
0 голосов
/ 14 февраля 2019

Я использую 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

На основе другого поста ( Буклет для R: отображать несколько строк данных во всплывающем окне ) Я вижу, что мой ярлыкформат должен быть следующим:

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 и так далее).Я не хочу вручную вводить «вставлять» часть этого кода для каждого ввода.

Я создал вектор с частью имен столбцов моего фрейма данных следующим образом:

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

Я думаю, что должен быть способ вставить это в правильном формате для my_popups, но я не совсем уверен, как поступить.Любые советы будут полезны!

1 Ответ

0 голосов
/ 14 февраля 2019

Я думаю, что это может помочь, возможно, с некоторыми незначительными изменениями:

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))
...