R-创建列并填充从另一列分组的数据

时间:2019-02-06 23:30:44

标签: r

我在R中有一个称为色相的数据框 它有一列称为颜色的列,其中包含多种颜色的行

我正在尝试创建一个名为colorez的新列 其值将是基于颜色列中的值的组名

我无法正确使用ifelse来解决问题

hues$colorez <- ifelse(hues$"color == blue,red,purple,black, "primary")
            ifelse(hues$"color == yellow, "secondary")
            ifelse(hues$"color == pink,orange, "tertiary")

下面是我要创建的

color     colorez   
blue      primary
red       primary
yellow    secondary
purple    primary 
pink      tertiary
orange    tertiary
yellow    secondary
red       primary
black     primary
orange    tertiary
yellow    secondary

2 个答案:

答案 0 :(得分:0)

我认为更简单的方法是使用合并或联接。如果您创建另一个名为例如 select a1.equipment, highest_date, max(b.date) as second_highest_date from ( select equipment, max(date) as highest_date from YOUR_TABLE as a group by equipment ) a1 join YOUR_TABLE as b on b.equipment = a1.equipment and b.date != a1.highest_date group by a1.equipment, a1.highest_date 的数据框,如示例所示,其中包含列colorscolor,则类似:

colorez

应该起作用,假设每个merge(hues, colors) hue$color中。

答案 1 :(得分:0)

如果您想保存一些键入内容,也可以这样做:

hues$colorez <- ifelse(hues$color %in% c("pink", "orange"), "tertiary",
                       ifelse(hues$color == "yellow", "secondary", "primary"))

假设您没有其他颜色,当然是您的数据集中提到的颜色。