Вы знаете о функции apply
? Если вы напишете функцию, которая считывает вектор длиной 14 и выдает T
или F
в зависимости от того, удовлетворяет ли вектор требованиям, то вы можете использовать apply
для применения этой функции ко всем строкам data.frame, давая вектор тысяч T
s и F
s, которые могут быть использованы для выбора или подсчета (последний, просто поместив вектор в функцию sum
).
Пример:
cow <- function(colnr, x){#colnr is number of column you want zero, x is vector of length 14
all(x[-colnr] > 0) & x[colnr] == 0)
}
horse <- function(colnr){#produces sequence of Trues and Falses telling you which columns satisfy the condition
apply(yourdataframe, 1, cow)
}
#example output:
horse(1)
#while we're at it: create a vector of length 14 containing the number of rows satisfying the 14 conditions:
sapply(seq(1:14), horse)
1
в apply
потому, что вы хотите применить к строкам, а не столбцы. Функция sapply
подобна применению, но затем применяет функцию к каждому элементу вектора, а не к каждой строке кадра данных.
Обновление: этот ответ такой же, как и zyunaidi, который появился во время ввода.
Что вы сделали до сих пор? Пожалуйста, покажите усилия, чтобы решить проблему самостоятельно. –