Я пытаюсь создать столбец, который будет ранжировать x, сгруппированный по именам.
names <- rep(c("Ben", "Joe", "Karen", "Joan"), times = 4)
set.seed(1)
x <- sample((1:10), 16, replace = TRUE)
learnrank <- data.frame(names,x)
Я использовал функцию tapply:
learnrank$rank <-
tapply(learnrank$x, learnrank$names,
rank, ties.method = "first")
learnrank
names x rank
<chr> <int> <list>
Ben 3 <int [4]>
Joe 4 <int [4]>
Karen 6 <int [4]>
Joan 10 <int [4]>
Ben 3 <int [4]>
Joe 9 <int [4]>
Karen 10 <int [4]>
Joan 7 <int [4]>
Ben 7 <int [4]>
Joe 1 <int [4]>
Я бы хотел, чтобы это было ниже, где мы оцениваем все оценки Бена от 1: 4, оценки Джо от 1: 4 , et c.
names x rank
<chr> <int> <list>
Ben 3 1
Joe 4 2
Karen 6 2
Joan 10 4
Ben 3 2
Joe 9 4
Karen 10 4
Joan 7 3
Ben 7 3
Joe 1 1
Есть ли у кого-нибудь предложения?
С уважением
Кевин