dat <- data.frame(Grade1 = c(6, NA), #create data
Grade2 = c(4.5, 7), Grade3 = c(NA, 8), Points1 = c(7, 7),
Points2 = c(5, 5), Points3 = c(4, 4))
R матричные операции - ваши друзья. dat[, c('Grade1', 'Grade2', 'Grade3')] > 5.5
- это матрица TRUE/FALSE/NA
для условия "оценка> 5,5", которую мы затем умножаем на матрицу оценок.
tmp <- (dat[, c('Grade1', 'Grade2', 'Grade3')] > 5.5) *
dat[, c('Points1', 'Points2', 'Points3')]
мы получаем матрицу, в которой выживают только точки, соответствующие 5,5 баллам:
tmp
#Points1 Points2 Points3
#1 7 0 NA
#2 NA 5 4
наконец, суммируйте выжившие очки, чтобы получить желаемый результат:
rowSums(tmp, na.rm = TRUE)
# [1] 7 9