如何在 R 中使用动态数据初始化 bucket_list?

How do I initialize a bucket_list with dynamic data in R?

我想用数据帧中的数据在 R 中初始化 bucket_list。假设我得到了以下数据:

buckets <- data.frame(
  text=c("A","A","B"),
  labels=c(1,2,3)
)

那我想实现如下bucket_list:

library(sortable)
bucket_list(
  header="Test"
  ,add_rank_list(text = "A",labels = c(1,2))
  ,add_rank_list(text = "B",labels = c(1) )
)

我的问题是数据帧 buckets 的内容是动态的,所以我需要一个将数据帧 buckets 作为输入的解决方案.

非常感谢您的帮助!

您可以将 data.frame 转换为分组列表。然后,对每个组使用 lapply 并使用 add_rank_list 将每个列表元素放入 bucket_list.

所需的格式
library(sortable)

buckets <- data.frame(
  text=c("A","A","B"),
  labels=c(1,2,3)
)

blst <- split(buckets$labels, buckets$text)

rlst <- lapply(names(blst), function(x) {
  add_rank_list(
    text = x,
    label = blst[[x]]
  )
})

do.call(bucket_list, c(header = "New Test Here", rlst))