Suppose I have a list of logicals, such as returned by lapply:
Theoph$Dose[1] <- NA
Theoph$Time[2] <- NA
Theoph$conc[3] <- NA
lapply(Theoph,is.na)
Is there a direct way to execute logical "or" across all vectors? The
following gives the desired result, but seems unnecessarily complex.
as.logical(apply(do.call("rbind",lapply(Theoph,is.na)),2,"sum"))
Regards,
Tim
logical 'or' on list of vectors
6 messages · Tim Bergsma, Chuck Cleland, jim holtman +2 more
Tim Bergsma wrote:
Suppose I have a list of logicals, such as returned by lapply:
Theoph$Dose[1] <- NA
Theoph$Time[2] <- NA
Theoph$conc[3] <- NA
lapply(Theoph,is.na)
Is there a direct way to execute logical "or" across all vectors? The
following gives the desired result, but seems unnecessarily complex.
as.logical(apply(do.call("rbind",lapply(Theoph,is.na)),2,"sum"))
Is this what you want? apply(is.na(Theoph), 1, any)
Regards, Tim
______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Chuck Cleland, Ph.D. NDRI, Inc. 71 West 23rd Street, 8th floor New York, NY 10010 tel: (212) 845-4495 (Tu, Th) tel: (732) 512-0171 (M, W, F) fax: (917) 438-0894
An embedded and charset-unspecified text was scrubbed... Name: not available Url: https://stat.ethz.ch/pipermail/r-help/attachments/20070608/dcc0d77c/attachment.pl
Tim Bergsma said the following on 6/8/2007 5:57 AM:
Suppose I have a list of logicals, such as returned by lapply:
Theoph$Dose[1] <- NA
Theoph$Time[2] <- NA
Theoph$conc[3] <- NA
lapply(Theoph,is.na)
Is there a direct way to execute logical "or" across all vectors? The
following gives the desired result, but seems unnecessarily complex.
as.logical(apply(do.call("rbind",lapply(Theoph,is.na)),2,"sum"))
Regards,
Tim
______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
How about: apply(sapply(Theoph, is.na), 1, any) HTH, --sundar
try the following: as.logical(rowSums(is.na(Theoph))) ## or !complete.cases(Theoph) I hope it helps. Best, Dimitris ---- Dimitris Rizopoulos Ph.D. Student Biostatistical Centre School of Public Health Catholic University of Leuven Address: Kapucijnenvoer 35, Leuven, Belgium Tel: +32/(0)16/336899 Fax: +32/(0)16/337015 Web: http://med.kuleuven.be/biostat/ http://www.student.kuleuven.be/~m0390867/dimitris.htm ----- Original Message ----- From: "Tim Bergsma" <timb at metrumrg.com> To: <r-help at stat.math.ethz.ch> Sent: Friday, June 08, 2007 2:57 PM Subject: [R] logical 'or' on list of vectors
Suppose I have a list of logicals, such as returned by lapply:
Theoph$Dose[1] <- NA
Theoph$Time[2] <- NA
Theoph$conc[3] <- NA
lapply(Theoph,is.na)
Is there a direct way to execute logical "or" across all vectors?
The
following gives the desired result, but seems unnecessarily complex.
as.logical(apply(do.call("rbind",lapply(Theoph,is.na)),2,"sum"))
Regards,
Tim
______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
Thanks all for the many excellent suggestions! !complete.cases(Theoph) is probably the most succinct form for the current problem, while the examples with 'any' seem readily adaptable to similar situations. Kind regards, Tim.
Dimitris Rizopoulos wrote:
try the following: as.logical(rowSums(is.na(Theoph))) ## or !complete.cases(Theoph) I hope it helps. Best, Dimitris ---- Dimitris Rizopoulos Ph.D. Student Biostatistical Centre School of Public Health Catholic University of Leuven Address: Kapucijnenvoer 35, Leuven, Belgium Tel: +32/(0)16/336899 Fax: +32/(0)16/337015 Web: http://med.kuleuven.be/biostat/ http://www.student.kuleuven.be/~m0390867/dimitris.htm ----- Original Message ----- From: "Tim Bergsma" <timb at metrumrg.com> To: <r-help at stat.math.ethz.ch> Sent: Friday, June 08, 2007 2:57 PM Subject: [R] logical 'or' on list of vectors
Suppose I have a list of logicals, such as returned by lapply:
Theoph$Dose[1] <- NA
Theoph$Time[2] <- NA
Theoph$conc[3] <- NA
lapply(Theoph,is.na)
Is there a direct way to execute logical "or" across all vectors? The
following gives the desired result, but seems unnecessarily complex.
as.logical(apply(do.call("rbind",lapply(Theoph,is.na)),2,"sum"))
Regards,
Tim
______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm