is.na(DF) is a matrix for a data.frame DF. The semantics of '[" are different for matrices and data.frame and that can cause confusion
> DF <- data.frame(X=c(101,NA,NA), Y=c("one","two",NA), row.names=c("i","ii","iii")) > is.na(DF) # returns a matrix when given a data.frame X Y i FALSE FALSE ii TRUE FALSE iii TRUE TRUE > which(is.na(DF)) # returns a vector when given a data.frame [1] 2 3 6 > which(is.na(DF), arr.ind=TRUE) # returns a length(dim(matrix))-column matrix when given an array row col ii 2 1 iii 3 1 iii 3 2 > DF[!is.na(DF)] # as.matrix(DF)[ !is.na(as.matrix(DF)) ] [1] "101" "one" "two" Bill Dunlap TIBCO Software wdunlap tibco.com On Thu, Apr 25, 2019 at 9:27 AM Nitu, Laurentiu < laurentiu.n...@fraserhealth.ca> wrote: > Hello, > > > I have this data frame [algae] in the package DMwR. I thought I understand > how to refer an element but I cannot explain... > > is.na(algae) is giving us the a logical vector with TRUE being the na's. > which(is.na(algae)) gives the positions on the elements in the data frame > where is.na returns TRUE. > > > However which(is.na(algae)) returns > > > [1] 648 838 862 1055 1056 1057 1058 1059 1060 1061 1062 1161 1199 1262 > 1399 1462 1599 1662 1799 1828 1999 2055 2056 2057 2058 2059 2060 2061 2062 > 2063 > [31] 2116 2184 2199 > > Weirs since: > > > > dim(algae) > > [1] 200 18 > > > If I refer back algae[which(is.na(algae))) I get a vector of NA's... > > What are the values returned by which(is.na(algae))? > > Thanks a lot for your help > > [[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. > [[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.