1 または 0 で示されるタグの個々の設定を持つデータ フレームがあります。
mydata <- data.frame(
ID = c(1:4),
tag1 = c(1, 0, 1, 0),
tag2 = c(0, 0, 0, 0),
tag3 = c(1, 0, 1, 1),
tag4 = c(1, 1, 0, 1),
tag5 = c(0, 1, 1, 1)
)
(私のデータには 5 つよりも多くのタグがあります)
ネットワーク ダイアグラムの場合、ワイド形式のデータを、行内の tag=1 の各ペア間の発生の長い形式のリストに変換する方法を探しています。上記の例では、次のようになります。
mydata2 <- data.frame(
ID = c(1,1,1,2,3,3,3,4,4,4),
target = c("tag1","tag1","tag3","tag4","tag1","tag1","tag3","tag3","tag3","tag4"),
source = c("tag3","tag4","tag4","tag5","tag3","tag5","tag5","tag4","tag5","tag5")
)
これに を使用したかったtidyr
のgather()
ですが、列のペアに使用する方法がわかりません。ペアごとに新しい変数を作成してそれらを収集することもできますが、タグのリストが長い場合、これは非現実的になります。これを行うよりエレガントな方法はありますか?それとも特定の機能ですか?