基于比较r中另一个变量的值,通过组合不同数据表中的一个变量的值来创建数据表

时间:2018-02-15 12:13:35

标签: r loops data.table

我想在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函数?

0 个答案:

没有答案