У меня есть последовательность чисел и векторов, которые следует использовать для оценки каждой последовательности чисел в соответствии с их рангами.
Пример
a <- c(20, 29, 22)
b <- c(21, 22, 27)
data <- data.frame(cbind(a,b))
c1 <- c(12,23,34,21,33,22,35,3,5,6,7,29,49)
c2 <- c(12,23,34,21,33,22,35,3,5,6,7,29,49)
Как я могу проверить ранг каждого значения data$a
в векторе c1
и каждого значения data$b
в c2
? Есть идеи? (Я абстрагировался от проблемы, но в сумме есть 28 значений для каждого человека (a
, b
, ...), которые мне нужно было бы ранжировать в соответствии с 28 значениями c
( c1
, c2
, ..., c28
)).
Для первого значения a = 20
потребуется 6
, поскольку из элементов c1
; 12
, 3
, 5
, 6
и 7
все меньше.
Любые идеи?
2 ответа
Как насчет создания нового вектора с добавленным значением и ранжирования его? таким образом создавая цикл, который для каждого элемента вектора a
выполняет:
rankVector=rank(append(c(a),c1))
А затем получите первое значение rankVector.
Полный цикл будет выглядеть так:
for (i in seq_along(a) ){
rankVector[i]=rank(append(c(a[i]),c1))
}
Ура!
Вы можете получить ранг своего вектора, используя функцию с именем rank, например. используйте следующее
rank(a)
Если вы хотите ранжировать вектор на основе другого вектора, вы можете просто использовать следующие
C1[sort(order(C1)[C2])]
Вам нужно уточнить свой вопрос (возможно, добавьте пример)
Похожие вопросы
Новые вопросы
r
R — это бесплатный язык программирования с открытым исходным кодом и программная среда для статистических вычислений, биоинформатики, визуализации и общих вычислений. Пожалуйста, используйте минимально воспроизводимые примеры, которые другие могут запустить с помощью копирования и вставки. Показать желаемый результат. Используйте dput() для данных и укажите все небазовые пакеты с помощью library(). Не вставляйте изображения для данных или кода, вместо этого используйте блоки кода с отступом. Для вопросов по статистике используйте https://stats.stackexchange.com.