我在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
答案 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
的数据框,如示例所示,其中包含列colors
和color
,则类似:
colorez
应该起作用,假设每个merge(hues, colors)
在hue$color
中。
答案 1 :(得分:0)
如果您想保存一些键入内容,也可以这样做:
hues$colorez <- ifelse(hues$color %in% c("pink", "orange"), "tertiary",
ifelse(hues$color == "yellow", "secondary", "primary"))
假设您没有其他颜色,当然是您的数据集中提到的颜色。