This behavior is documented in the manual page: > prod(NULL) [1] 1
You can check for an empty vector as follows: plabor <- structure(list(colA = c(6, NA, 3, 4), colB = c(25, NA, 2, 7), colC = c(3, NA, 19, NA)), .Names = c("colA", "colB", "colC"), class = "data.frame", row.names = c(NA, -4L)) # Use dput() to send data to the list plabor$colD = apply(plabor[c("colA","colB","colC")], 1, prod, na.rm=TRUE) # Use TRUE and FALSE since the abbreviations T and F are not reserved and # could be redefined vals <- apply(plabor[c("colA","colB","colC")],1,function(x) length(na.omit(x))) vals # [1] 3 0 3 2 plabor$colD <- ifelse(vals>0, plabor$colD, NA) plabor # colA colB colC colD # 1 6 25 3 450 # 2 NA NA NA NA # 3 3 2 19 114 # 4 4 7 NA 28 ------------------------------------- David L Carlson Department of Anthropology Texas A&M University College Station, TX 77840-4352 -----Original Message----- From: R-help [mailto:r-help-boun...@r-project.org] On Behalf Of Olu Ola via R-help Sent: Monday, November 14, 2016 2:52 PM To: R-help Mailing List Subject: [R] Issues with the way Apply handled NA's Hello,I have a data set called plabor and have the following format: | ColA | ColB | Colc | | 6 | 25 | 3 | | NA | NA | NA | | 3 | 2 | 19 | | 4 | 7 | NA | I wanted to find the product of the three columns for each of the rows and I used the apply function follows: plabor$colD = apply(plabor[c("colA","colB","colc")],1,prod,na.rm=T) The result are as follows: | ColA | ColB | Colc | colD | | 6 | 25 | 3 | 450 | | NA | NA | NA | 1 | | 3 | 2 | 19 | 114 | | 4 | 7 | NA | 28 | The second row results is 1 instead of being ignored. How do I deal with this issue because I do not want to exclude these data points with all NA's? Regards [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.