時々、私はdplyrチェーン内のデータフレームを(通常は変更された)自身のバージョンに結合する必要があります。このようなもの:dplyrチェーン内でデータフレームを自分自身に参加させるにはどうすればよいですか?
df <- data.frame(
id = c(1,2,3)
, status = c('foo','bar','meh')
, spouseid = c(4,3,2)
)
df %>%
filter(status == 'foo' | status == 'bar') %>%
# join the filtered table to itself using the dot as the right-hand side
left_join(., by = c('id' = 'spouseid'))
これを試してみると、Error in is.data.frame(y) : argument "y" is missing, with no default
となります。
元のデータフレームを変更したフレームに結合したいのですか?もしそうなら、joinラインは 'left_join(df、by = c( 'id' = 'spouseid'))'とすることができます。これにより元のデータフレームがrhsに格納されます。最終結果のどの行に応じて、これを 'right_join'または' full_join'に変更することもできます。 – eipi10
私はチェーンを壊すことなく、編集されたデータフレームを自分自身に結合することに最も関心があります。過去には、私はいつも私の編集を最初に行い、新しいオブジェクトにそれを保存してから、結合を行ったり、y引数の結合自体で同じ編集を行ったりしていました。 – crazybilly