Я новичок в R и получаю краткий обзор времени, связанного с синтаксисом. Скажем, у меня есть следующие данные кадра данных:Создайте вектор, удовлетворяющий двум факторам в кадре данных
value label second
1 a q
2 a q
3 a ASDF
4 b q
6 b QWERTY
6 b QWERTY
7 c q
8 c q
9 c q
10 d q
Теперь я хочу, чтобы получить вектор df$second
, которые соответствуют максимумам df$value
для заданного значения df$label
. Так, например, учитывая df$label = 'a'
, я хочу вернуть 'ASDF'
. Для df$label = 'b'
, я хочу вернуть 'QWERTY', 'QWERTY'
.
Вот что я хочу:
max_value <- max(data$value[data$label == 'a'])
result <- c()
for (x in data$value){
if (x == max_value){
result <- c(result, data$second)
}
}
Теперь это не создает правильный вектор результатов. Я хотел бы выяснить способ сделать это с помощью sapply, tapply, mapply и т. Д. У меня просто возникают проблемы с этим. Любая помощь будет принята с благодарностью.
Спасибо очень много. Теперь, как я могу извлечь, скажем, вектор максимумов для фактора «b»? Это так же просто, как x <- lapply (...) x [2] ? – aridneptune