2015-12-12 14 views
5

Verilen vektörler:FALSE | öğesini değerlendiren Vectorized OR işlevi NA ve NA | YANLIŞ YANLIŞ?

vect1 <- c(TRUE,FALSE,FALSE,NA,NA,NA,TRUE,FALSE,NA,FALSE) 
vect2 <- c(TRUE,NA,FALSE,NA,FALSE,TRUE,FALSE,NA,TRUE,NA) 
vect3 <- vect1 | vect2 
vect3 #c(TRUE,NA,FALSE,NA,NA,TRUE,TRUE,NA,TRUE,NA) 

bu gibi unsurlar değerlendiren bir vektörleşen infix fonksiyonu x var Bu gibi bir vektör vect4 üreten

TRUE x TRUE #TRUE 
TRUE x FALSE #TRUE 
FALSE x TRUE #TRUE 
FALSE x FALSE #FALSE 
TRUE x NA #TRUE 
NA x TRUE #TRUE 
FALSE x NA #FALSE - would have been NA with ordinary "|" 
NA x FALSE #FALSE - would have been NA with ordinary "|" 
NA x NA #NA 

:

vect4 #c(TRUE,FALSE,FALSE,NA,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE) 

ya da orada vect4'un vect1 ve'den çıkması için herhangi bir basit yöntem?

cevap

7

için Buna paralel maksimum hesaplamak (na.rm = TRUE ile birlikte) ve dönüştürme logical için: mantıksal vektörlerin maksimumları hesaplayarak, TRUE tam sayı olarak tamsayı 1 ve FALSE olarak yorumlanır bu

as.logical(pmax(vect1, vect2, na.rm = TRUE)) 
# [1] TRUE FALSE FALSE NA FALSE TRUE TRUE FALSE TRUE FALSE 

Not 0

+0

Teşekkürler, bu gerçekten özlü! – CarlAH

İlgili konular