マージしたい 2 つの R データフレームがあります。ストレート R では、次のことができます。
cost <- data.frame(farm=c('farm A', 'office'), cost=c(10, 100))
trees <- data.frame(farm=c('farm A', 'farm B'), trees=c(20,30))
merge(cost, trees, all=TRUE)
これは以下を生成します:
farm cost trees
1 farm A 10 20
2 office 100 NA
3 farm B NA 30
私は を使用してdplyr
おり、次のようなソリューションを好むでしょう:
left_join(cost, trees)
私が望むものに近いものを生成します:
farm cost trees
1 farm A 10 20
2 office 100 NA
では、、およびdplyr
が表示されますが、これらのどれも何を行うものではありません。left_join
inner_join
semi_join
anti-join
merge
all=TRUE
また、NA を 0 に設定する簡単な方法はありますか? これまでの私の取り組みx$trees[is.na(x$trees)] <- 0;
は面倒で (列ごとにコマンドが必要です)、常に機能しているとは限りません。
ありがとう