【发布时间】:2013-12-19 10:46:37
【问题描述】:
我有两个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]))
【问题讨论】:
-
sapply( DF1 , function(x) sum( x == DF2[,1] ) ) -
@SimonO101 这不会返回排名。
-
@JorisMeys 充其量这个问题的措辞不清楚。如果是我认为的(即匹配最多的列排在第一位),那么将前者包装在
rank()中就足够了。 -
@SimonO101 match() 给出了排名,他只是使用 function() 错误。
-
@JorisMeys 好的,我对排名的理解不同。我想我接近它时没有意识到
DF2[,1]中的值顺序代表排名。