[英]R Shiny parent child rows in datatable
我正在嘗試在我正在構建的閃亮應用程序中重用這個子/父行的可數據示例:
https://rstudio.github.io/DT/002-rowdetails.html
還有一個允許添加多行的輕微修改:
https://github.com/rstudio/DT/issues/393#issuecomment-279627237
但是,我的情況有點不同。 我有一個包含主要分組父變量和子行的數據框。 子行可以是從 0 到 n 的任何值。 我想顯示一次我的父變量,所有的子變量都隱藏在它下面。
以下是一些示例數據:
library(dplyr)
df = data.frame() %>%
rbind(c("parent1", "childA", "desc1")) %>%
rbind(c("parent1", "childB", "desc2")) %>%
rbind(c("parent2", "childC", "desc3")) %>%
rbind(c("parent3", "childD", "desc4")) %>%
rbind(c("parent4", "childE", "desc5")) %>%
rbind(c("parent4", "childF", "desc6")) %>%
rbind(c("parent4", "childG", "desc7")) %>%
`colnames<-`(c("parentID", "childID", "childDesc"))
警告:我不懂 javascript,也不知道如何修改這些代碼。 我已經看到多個示例試圖解決同一問題,但是,它們有太多的代碼和自定義。 我希望上面更簡單的例子更容易修改,有人可以引導我完成它。 我也不需要任何花哨的格式。 以下是我見過的一些例子:
您可以在服務器部分使用此代碼:
output$txt <- renderUI({
df =
data.frame() %>%
rbind(c("parent1", "childA", "desc1")) %>%
rbind(c("parent1", "childB", "desc2")) %>%
rbind(c("parent2", "childC", "desc3")) %>%
rbind(c("parent3", "childD", "desc4")) %>%
rbind(c("parent4", "childE", "desc5")) %>%
rbind(c("parent4", "childF", "desc6")) %>%
rbind(c("parent4", "childG", "desc7")) %>%
`colnames<-`(c("parentID", "childID", "childDesc")) %>%
# this has already been done by you
group_by(parentID) %>% #you group the frame by parents
summarise(children = paste(childID, collapse = "</p><p>"))%>%
#apply the aggregate function
mutate(concatenated = paste0("<h3>", parentID, "</h3>", "<p>", children,"</p>"))
#combine the two columns:
HTML(paste(df$concatenated, sep = '<br/>'))
})
該代碼將對數據框進行分組,然后使用 html 標簽作為分隔符聚合必要的字符串。 將呈現結果字符串。
此行在 UI 中對於渲染 HTML 的輸出是必需的:
htmlOutput("txt")
這是您在瀏覽器中獲得的:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.