0

これはかなり簡単なはずですが、私は自分自身を混乱させています。データフレームあり:

df <- data.frame(id = 1:5, rate1 = c(1, 0, 0.3, 0.5, 1)
, rate2 = c(0, 0.6, 1, 0, 1), cost1 = 3:7, cost2 = 8:4)

1 に等しいかどうかに応じて新しい列を追加rate1し、新しい列に最大値を入力し、それ以外の場合は 0 を使用します。望ましい結果は次のようになります。rate2cost1cost2

  id rate1 rate2 cost1 cost2 overspent
1  1   1.0   0.0     3     8         8
2  2   0.0   0.6     4     7         0
3  3   0.3   1.0     5     6         6
4  4   0.5   0.0     6     5         0
5  5   1.0   1.0     7     4         7

私は次のようなものを使用していると仮定します:

df$overspent <- with(df, ifelse((rate1 == 1 || rate2 == 1)
                     , apply(cbind(cost1, cost2), 1, max), 0))

しかし、明らかにそれは機能しません。私を修正してください。ありがとう!

4

1 に答える 1