我有两个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]))
答案 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