логический переключатель: поведение любого

У меня есть кадр данных, к которому применяется логический тест: является ли какой-либо из столбцов ИСТИННЫМ?

x=data.frame(label=c('a','b','c'),outcome1=c(TRUE,FALSE,FALSE),outcome2=c(FALSE,FALSE,TRUE),outcome3=c(TRUE,FALSE,FALSE))
x=transform(x,result=any(outcome1,outcome2,outcome3))

x
#   label outcome1 outcome2 outcome3 result
# 1     a     TRUE    FALSE     TRUE   TRUE
# 2     b    FALSE    FALSE    FALSE   TRUE
# 3     c    FALSE     TRUE    FALSE   TRUE

Я не понимаю, почему результат строки 2 ИСТИНЕН, поскольку не все термины столбца верны.

any(FALSE,FALSE,FALSE)
FALSE

Как правильно применить «любой» в данном случае?


person Henk    schedule 15.01.2014    source источник
comment
any не all. Поищите все в словаре, если английский не является вашим родным языком.   -  person Roland    schedule 15.01.2014
comment
@Roland: действительно не мой родной язык :-). Но скажем по-другому: почему любое (ЛОЖЬ, ЛОЖЬ, ЛОЖЬ) ЛОЖЬ. тогда как это ИСТИНА в кадре данных?   -  person Henk    schedule 15.01.2014


Ответы (1)


Ваш код вычисляет

any(c(TRUE,FALSE,FALSE),c(FALSE,FALSE,TRUE),c(TRUE,FALSE,FALSE))

и повторно использует результат для заполнения столбца.

person Roland    schedule 15.01.2014
comment
Я проверю переработку в словаре. - person Henk; 15.01.2014