我想在R中创建一个新的数据表,其中如果anohter数据表的同一列中的两个值相等,那些相等的观察的下一列中的值将被配对成一个变量。 例如:
award actor year
1: 10th_Annual_Critics__Choice_Awards__The_2005 Aiken__Liam 2005
2: 10th_Annual_Critics__Choice_Awards__The_2005 Bain__Bob 2005
3: 10th_Annual_Critics__Choice_Awards__The_2005 Bardem__Javier 2005
4: 10th_Annual_Critics__Choice_Awards__The_2005 Bello__Maria__I_ 2005
5: 10th_Annual_Critics__Choice_Awards__The_2005 Berlin__Joey 2005
Liam Aiken和Bob Bain都参加了同一个奖项,所以在一个不同的数据表中,我希望能够输入类似于" Aiken_Liam Bain_Bob"以及一对所有人参加同一奖项的人(Aiken + Bardem,Bardem + Berlin等)。
我正在考虑使用while循环循环来接近它:
i <- 1
j <- i + 1
while(dt.awards.actor[i,]$award == dt.awards.actor[j,]$award){
w <- paste(dt.awards.actor[i,]$actor, dt.awards.actor[j,]$actor))
print(w)
i <- i + 1
}
但是,上面的代码会返回&#34; Bain_Bob&#34;的所有对,同时跳过&#34; Aiken_Liam&#34;,并且while循环在找到&#的对时停止搜索34; Bain_Bob&#34; (它不会搜索任何其他人的对)。另外,我如何进行编码,以便获得两个演员都参加的节目,并将输出转换为data.table?也许使用lapply或apply函数?