[英]Assigning column values based on which value is highest in a row of three other columns in R
我想在R中执行以下操作:
我有三种产品的购买频率:AB和C(此处是客户的标识)。 现在,我想创建第四列,如果产品A的购买频率最高,则每行的值为0;如果产品B的购买频率最高,则为1;如果产品C的购买频率最高,则为2购买频率。 理想情况下,如果两个或什至所有三个产品的购买频率都很高,我想随机分配这三个值之一。 当然,如果只有两个类别(而不是三个类别)是最高且相等的,则只能对三个类别中的两个类别进行随机分配。
所以说我有下表:
customer A B C
1 2 3 4
2 4 6 5
3 4 2 4
4 4 2 4
5 4 4 4
6 2 2 2
7 4 4 4
我想创建(例如)以下列:
highest_purchase_freq
2
1
0
2
0
1
2
如果有人可以帮助我,那将是惊人的。
提前致谢!
您正在寻找nnet
的which.is.max
函数吗?
它找到向量中的最大位置,随机断开关系。
set.seed(12345)
library(nnet)
df$highest_purchase_freq <- apply(df[2:4], 1, which.is.max)-1
df
customer A B C highest_purchase_freq
1 1 2 3 4 2
2 2 4 6 5 1
3 3 4 2 4 2
4 4 4 2 4 2
5 5 4 4 4 2
6 6 2 2 2 2
7 7 4 4 4 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.