如果标题可能不清楚,我深表歉意。
和
df <- data.frame(profit = c(1, 1, 0, 0, 0, -1),
offerA = round(rnorm(6), 2),
offerB = round(runif(6), 2),
offerC = sample(1:6))
df
profit offerA offerB offerC
1 1 -0.51 0.91 6
2 1 -0.03 0.75 4
3 0 -1.02 0.28 5
4 0 0.63 0.61 1
5 0 2.32 0.37 2
6 -1 -0.15 0.43 3
我需要在以下条件下添加一个bid
根据值命名的字段:profit
with(df,
if (profit > 0) {
apply(cbind(offerA, offerB, offerC), 1, max)
}
else if (profit = 0) {
apply(cbind(offerA, offerB, offerC), 1, mean)
}
else if (profit < 0) {
apply(cbind(offerA, offerB, offerC), 1, min)
}
)
在这个例子中,新的df
将是:
df
profit offerA offerB offerC bid
1 1 -0.51 0.91 6 6
2 1 -0.03 0.75 4 4
3 0 -1.02 0.28 5 1.42
4 0 0.63 0.61 1 0.75
5 0 2.32 0.37 2 1.56
6 -1 -0.15 0.43 3 -0.15
因为 的值bid
是按行计算的,所以我想编写一个函数addBid()
,以便可以使用类似apply(df, 1, addBid)
但我想不出将上面的条件添加到函数中的好方法。我希望我的问题很清楚。谢谢!