嗨,我正在尝试确定R.中两个列表的顺序变化
比较两个不同月份网球运动员的排名。
Feb <- c("A", "B", "C", "D")
Mar <- c("D", "B", "C", "A")
orderChange(Feb, Mar)
我想得到一个显示排序/排名差异的结果。
(-3, 0, 0, 3)
我试过which((,但这只是告诉我元素是否存在,并且不比较排序。
which(Mar %in% Feb)
[1] 1 2 3 4
您可以使用seq_along
并减去match
。
Feb <- c("A", "B", "C", "D")
Mar <- c("D", "B", "C", "A")
Apr <- c("C", "B", "D", "A")
seq_along(Feb) - match(Feb, Mar)
#[1] -3 0 0 3
seq_along(Feb) - match(Feb, Apr)
#[1] -3 0 2 1
并且如果需要,可以将其封装在功能中。
orderChange <- function(x, y) seq_along(x) - match(x, y)