将data.frame的一列与另一data.frame中的所有列匹配

时间:2013-12-19 10:46:38

标签: r dataframe match

我有两个data.frames:

 DF1   
 Col1      Col2      ......      ......   Col2000 
  A         H     
  c         d
  d         e  
  n         b   
  e         A    
  b         n    
  H         c    

 DF2    
  A
  b        
  c       
  d      
  e        
  n     
  H

我只需要将DF2中唯一的一列与DF1中的每一列相匹配。我需要匹配它们,因为我需要确切地知道比赛的排名。无论如何,我试着编写一个函数,但由于我不是R专家,我的代码出了问题:

  lapply(DF1, function(x) match(DF1[,i], DF2[,1]))      

1 个答案:

答案 0 :(得分:2)

要获得正确的结果,您需要一个正确的命令:

lapply(DF1, function(x) match(x, DF2[,1]))     

正在做你想做的事。拿:

DF1 <- data.frame(
  Col1 = c('A','c','d','n','e','b','H'),
  Col2 = c('H','d','e','b','A','n','c')
  )
DF2 <- data.frame(c('A','b','c','d','e','n','H'))

然后:

> lapply(DF1, function(x) match(x, DF2[,1]))  
$Col1
[1] 1 3 4 6 5 2 7

$Col2
[1] 7 4 5 2 1 6 3