df2の列の条件の満足度に応じて、df列の値を選択的に更新し、df1の更新値としてdf2の列の値を提供する必要があります。両方のdfには、値が一意である列があり、df2の一意は、df1の一意のサブセットです。私が試したアプローチは、両方のdfの一意の列の値を取得し、それらを行名に変換し、それらを使用して、df2から作成され、値の更新のためにdf1に適用される選択インデックスを定義することです。行の文字ベースの共有キーインデックスと組み合わせて、数値の添え字を使用して列を定義することにより、構文が機能するようになりました(最終的には!)。ふぅ。
しかし、おそらく組み込みを使用して、私が試みている方法よりも簡単で、効率的で、より「R」の方法がありますか?スケーリングする必要があります。テスト例は次のとおりです。
goo <- data.frame(Uids=c("UidD", "UidA", "UidC"), Payout=c(3,0,5), stringsAsFactors = FALSE)
moo <- data.frame(Uids=c("UidB", "UidC", "UidA", "UidD"), PayOut=0, stringsAsFactors = FALSE)
goo
Uids Payout
1 UidD 3
2 UidA 0
3 UidC 5
moo
Uids PayOut
1 UidB 0
2 UidC 0
3 UidA 0
4 UidD 0
# I want to update moo$Payout with the value of goo$Payout, for matching Uids,
# when goo$Payout > 0, i.e. moo[4,2] <- goo[1,2]; moo[2,2 <- goo[3,2]
rownames(goo) <- goo$Uids
rownames(moo) <- moo$Uids
#I am trying to create and apply an index based on turning uids into rownames
IndexToUpdate <- goo$Uids[goo$Payout>0]
IndexToUpdate
[1] "UidD" "UidC"
moo[IndexToUpdate, 2] <- goo[IndexToUpdate, 2]
#this works, but is there a better way to do it?
moo
Uids PayOut
UidB UidB 0
UidC UidC 5
UidA UidA 0
UidD UidD 3