と階層ifelse条件Iは、次のような問題へのエレガントな解決策を探しています:R:複数、並列成果
私は別のマッチング基準に基づいて企業に所有者を割り当てる必要があります。これらのマッチング基準は異なる品質のものであるため、より質の低い基準は結果が得られない場合にのみ使用されるべきである。私の例では、すべてのa
基準は、b
基準と同じ品質レベルと高品質です。
私のポイントを説明するために、以下:
firmname <- c("Firm A", "Firm B", "Firm C", "Firm D", "Firm E", "Firm F")
ownermatch_a1 <- c("Owner 1", NA, NA, NA, "Owner 5", "Owner 6")
ownermatch_a2 <- c("Owner 1", NA, NA, "Owner 4", "Owner 5", "Owner 6")
ownermatch_a3 <- c("Owner 1", NA, "Owner 3", "Owner 4", "Owner 5", "Owner 6")
ownermatch_b1 <- c("Owner 1", "Owner 2", "Owner 3", "Owner 4", "Owner 5", "Owner 6")
ownerfinal <- (NA)
data.frame(firmname, ownermatch_a1, ownermatch_a2, ownermatch_a3, ownermatch_b1, ownerfinal)
これは、次の表
firmname ownermatch_a1 ownermatch_a2 ownermatch_a3 ownermatch_b1 ownerfinal
1 Firm A Owner 1 Owner 1 Owner 1 Owner 1 <NA>
2 Firm B <NA> <NA> <NA> Owner 2 <NA>
3 Firm C <NA> <NA> Owner 3 Owner 3 <NA>
4 Firm D <NA> Owner 4 Owner 4 Owner 4 <NA>
5 Firm E Owner 5 Owner 5 Owner 5 Owner 5 <NA>
6 Firm F Owner 6 Owner 6 Owner 6 Owner 6 <NA>
をもたらし、私は今、Rは、次の操作を実行したい: 1)3 a
のいずれかの事務所1つが基準がNAでない場合は、ownerfinal
としてください。 2)a
が非NAである場合は、これらをランダムにとり、ownerfinal
としてください。3)これらのすべてがNAである場合のみ、ownermatch_b1
をとり、ownerfinal
としてください。
だから例の上記: 企業A: 企業B A3、A2、A1のいずれかを選んで:B1 事務所Cピック:A2またはA3
のいずれかを選んでいただきありがとうございます:A3 事務所Dピック!
はと 'しないでください.data.frame(cbind(...)) ';すべてのものを行列に変換してから、data.frameに変換することになります。代わりに、単に 'data.frame'を直接使用してください。 'data.frame(a = c( 'foo'、 'bar')、b = 1:2)'となります。 – alistaire
@DarshanBaralはい、それは完全に上手くいくでしょう! – deca
@alistaire提案に感謝します。この例ではこれを編集します。 – deca