Мне нужно подмножить таблицу данных на основе условия для нескольких столбцов, а затем выполнить операцию над результатом.Поиск R в нескольких столбцах данных
Минимальный пример с простым data.table:
x <- data.table(id=c(1, 2, 3, 4), colour1 = c('red', 'green', 'green', 'blue'),
colour2 = c('yellow', 'red', 'blue', 'black'),
colour3 = c('blue', 'black', 'red', 'yellow'),
score = c(0.7, 0.9, 0.2, 0.35))
я тогда хочу найти максимальное количество баллов для любой строки, которая содержит цвет «желтый»:
max_score <- max(x[colour1 == 'yellow' | colour2 == 'yellow' | colour3 == 'yellow']$score)
В этом примере , приведенный выше код работает нормально, но есть ли лучший способ проверить это условие на нескольких столбцах? На практике таблица будет намного больше, и количество столбцов может измениться, поэтому я хотел бы сделать это динамически.
Связанное почти дублирующее сообщение: http://stackoverflow.com/questions/18589595/filter-rows-based-on-multiple-column-conditions-r – zx8754