2つのデータフレームがあります。私は、Rにネストされたforループを使って欲しいものをすることができますが、もっと効率的な方法があると確信しています。ここでR - 異なるdfの条件文を使用して1つのdfの参照値
は私のループです:
for (x in 1:dim(data)[1]){
for (y in 1:dim(Zone_Factor)[1]){
if(data[x,"ZONE"] == Zone_Factor[y,"Zone"] & data[x,"BLOCK"] == Zone_Factor[y,"Zone_Number"]){
data[x,"Zone_Factor"] <- Zone_Factor[y,"Factor"]
}
}
}
「のデータが」私のメインデータフレーム(〜100K行)であり、「Zone_Factorは、」私はデータ」の値に基づいてからデータを抽出しています小さなテーブルです"私はRよりもVBAに精通しています。基本的には、 "data $ ZONE"と "data $ BLOCK"を使って "Zone_Factor"のvlookupを行いたいと思います。私は、このループは約2分で実行されますが、私はこれを行うにははるかに効率的な方法があると仮定してい
Zone_Factor[which(Zone_Factor[,"Zone"] == data$ZONE & Zone_Factor[,"Zone_Number"] == data$BLOCK), "Factor"]
(私のwhich()
機能は以下の投稿)which()
で遊んが、運がなかったです。ネストされたループを使用する代わりに私は何ができますか?
は素晴らしい作品、ありがとう! –