【问题标题】:R assign character values from list to unique groups in column of dataframeR将列表中的字符值分配给数据框列中的唯一组
【发布时间】:2020-07-02 15:15:03
【问题描述】:

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

我有一个用于指定边框颜色的类名列表:

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

我想要做的是为 className 添加一个新列,该列从 color_list 中挑选,并通过 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"
             )

我一直在尝试各种匹配/唯一/聚合函数,但我正在三振。

【问题讨论】:

    标签: r match aggregate unique


    【解决方案1】:

    这种方法利用了 group_id 是与 color_list 中的位置相对应的数字变量这一事实:

    items$className <- color_list[items$group_id]
    

    【讨论】:

    • 我不知道我为什么要为此如此努力。我想我设想它是按顺序从颜色列表中挑选出来的,而不是提取相应的值。这实际上效果更好,因为我可以订购我的颜色列表以与特定组相对应,并且无论组是否存在,它都是相同的,因为 group_id 是静态分配的值。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    • 2021-07-05
    • 2013-03-02
    • 2019-11-25
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多