我有一个名为one_plot的数据集,其头部可以在下面看到。我正在尝试使用dplyr包添加一个列来基于他们的subCategory_id标记行。例如,%c(1:4)中的subCategory_id%被标记为“Premium”,%c(4:12)中的subCategory_id%被标记为“Base”,而%c(12:20)中的subCategory_id%被标记为“其他”
product_id product_origin product_price subCategory_id GBP
1 Australia 0.36154597 1 371.31
2 USA 0.14425684 1 148.15
3 USA 0.09020571 1 92.64
5 USA 0.35793051 1 367.59
6 USA 0.19523482 1 200.51
我尝试使用命令
one_plot$cat_type <- filter(one_plot, subCategory_id %in% c(1:4) = "Premium")
非常感谢任何帮助。
答案 0 :(得分:0)
您可以执行类似
的操作df <- data.frame(id=1:12, otherStuff = letters[1:12])
df %>%
mutate(Label = lapply(id, function(x) {
if (x %in% c(1:4)) {
'Premium'
} else if (x %in% c(5:10)) {
'Base'
} else if (x %in% c(11:12)) {
'other'
}
}))
答案 1 :(得分:0)
尝试为新列中的值添加引用df
,如下所示:
ref.df <- c(rep("Premium",4),rep("Base",8))
subcat <- seq(1,12,1)
然后使用match
获得您想要的内容:
one_plot$cat_type <- ref.df[match(one_plot$cat_type, subcat)]