[R] Question about addressing a data frame

Nitu, Laurentiu L@urent|u@N|tu @end|ng |rom |r@@erhe@|th@c@
Thu Apr 25 19:20:47 CEST 2019


Thank you very much for your answer. Yes, meanwhile I found out …

Plus, that index that which() is returning  applied on the matrix is calculated as:

matrix[rowIndices + nrow(matrix) * (colIndices - 1)]


thanks again for your help



From: William Dunlap <wdunlap using tibco.com>
Sent: Thursday, April 25, 2019 10:03 AM
To: Nitu, Laurentiu <Laurentiu.Nitu using fraserhealth.ca>
Cc: r-help using r-project.org
Subject: Re: [R] Question about addressing a data frame

is.na<http://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<http://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<http://is.na>(DF)) # returns a vector when given a data.frame
[1] 2 3 6
> which(is.na<http://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<http://is.na>(DF)] # as.matrix(DF)[ !is.na<http://is.na>(as.matrix(DF)) ]
[1] "101" "one" "two"

Bill Dunlap
TIBCO Software
wdunlap tibco.com<http://tibco.com>


On Thu, Apr 25, 2019 at 9:27 AM Nitu, Laurentiu <Laurentiu.Nitu using fraserhealth.ca<mailto:Laurentiu.Nitu using 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<http://is.na>(algae) is giving us the a logical vector with TRUE being the na's.
which(is.na<http://is.na>(algae)) gives the positions on the elements in the data frame where is.na<http://is.na> returns TRUE.


However which(is.na<http://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<http://is.na>(algae))) I get a vector of NA's...

What are the values returned by which(is.na<http://is.na>(algae))?

Thanks a lot for your help

        [[alternative HTML version deleted]]

______________________________________________
R-help using r-project.org<mailto:R-help using 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]]



More information about the R-help mailing list