Допустим, у меня есть фрейм данных, например:
df <- data.frame(
variable = rep(letters[1:10], 2),
y2 = 1:10,
y1 = c(10, 9, 8 ,7, 6, 5, 4, 2, 1, 3),
stat = c(rep(letters[1], 10), rep(letters[2], 10))
)
С помощью "stat" я хотел бы создать три новых столбца, один из которых отображает пронумерованный ранг для y1
и y2
, а другой - для вычисления изменения ранга между y1
и y2
(короткий за год 1 и год 2).
Я возился с ddply
, но я не могу заставить его делать то, что я хочу. Вот пример того, что я пробовал (который также может иллюстрировать то, что я пытаюсь сделать):
ddply(df, .(stat), function(x) data.frame(
df,
y1rank = rank(x$x),
y2rank = rank(x$y),
change = rank(x$y) - rank(x$x)
))