R将列表中的字符值分配给数据框列中的唯一组

R assign character values from list to unique groups in column of dataframe

我找到了很多关于 true/false 或 ID 被分配给唯一值的答案。这些相对简单。但是我还没有发现任何超级有用的东西可以将列表中的字符值分配给唯一的组。

我有一个 class 名称列表,我用它来指定边框颜色:

color_list <- list("red_point","blue_point","green_point","yellow_point","black_point")

然后我有一个充满信息的数据框:

items <- data.frame(
           category = c("Room","IceBreaker","Activity","Break","Activity","Break"),
           group_id=c(1,2,3,4,3,4),
           content = c("Big Room","Introductions","Red Rover","Lunch","Recess","Stretch"),
           length = c(480,60,120,90,30,10)
         )

我想要做的是为从 color_list 中挑选的 className 添加一个新列,并将其分配给唯一的组,按 group_id 或类别。

结果会是这样的:

items <- data.frame(
               category = c("Room","IceBreaker","Activity","Break","Activity","Break"),
               group_id=c(1,2,3,4,3,4),
               content = c("Big Room","Introductions","Red Rover","Lunch","Recess","Stretch"),
               length = c(480,60,120,90,30,10),
               className = 
               c("red_point","blue_point","green_point","yellow_point","green_point","yellow_point"
             )

我一直在尝试各种match/unique/aggregate功能,但我三振出局了。

这种方法利用了以下事实:group_id 是一个数字变量,对应于 color_list 中的位置:

items$className <- color_list[items$group_id]