多くの場合、いくつかの変数でデータ フレームをグループ化した後、同じ変数でグループ化された別のデータ フレームのデータを使用する関数を適用したいと考えています。私が見つけた最善の解決策は、次のように関数内でsemi_joinを使用することです。
d1 <- data.frame(model = c(1,1,2,2), x = runif(4) )
d2 <- data.frame(model=c(1,1,1,2,2,2), y = runif(6) )
myfun <- function(df1, df2) {
subsetdf2 <- semi_join(df2, df1)
data.frame(z = sum(d1$x) - sum(subsetdf2$y)) # trivial manipulation just to exemplify
}
d1 %>% group_by(model) %>% do(myfun(., d2))
問題は、semi_joinが「Joining by...」メッセージを返し、この関数を使用してブートストラップを実行していると、コンソールを折りたたむ多くのメッセージが表示されることです。では、結合の冗長性を減らす方法はありますか? このようなことを行うためのよりエレガントな方法を知っていますか?
PS私は数年前にplyrについて同様の質問をしました:ddplyで指定された変数による関数内のサブセット