This has every appearance of being a bug. If it is not a bug, can someone tell me what I am asking for when I ask for "x[x[,2]==0,]". Thanks. > #here is the toy dataset > x <- rbind(c(1,1),c(2,2),c(3,3),c(4,0),c(5,0),c(6,NA), + c(7,NA),c(8,NA),c(9,NA),c(10,NA) + ) > x [,1] [,2] [1,] 1 1 [2,] 2 2 [3,] 3 3 [4,] 4 0 [5,] 5 0 [6,] 6 NA [7,] 7 NA [8,] 8 NA [9,] 9 NA [10,] 10 NA > > #it contains rows that have NA's > x[is.na(x[,2]),] [,1] [,2] [1,] 6 NA [2,] 7 NA [3,] 8 NA [4,] 9 NA [5,] 10 NA > > #seems like an unreasonable answer to a reasonable question > x[x[,2]==0,] [,1] [,2] [1,] 4 0 [2,] 5 0 [3,] NA NA [4,] NA NA [5,] NA NA [6,] NA NA [7,] NA NA > > #this is more what I was expecting > x[which(x[,2]==0),] [,1] [,2] [1,] 4 0 [2,] 5 0 >
Hi, It's related to how NAs are treated in comparison operations. See the Details section of https://www.rdocumentation.org/packages/base/versions/3.4.1/topics/Comparison <https://www.rdocumentation.org/packages/base/versions/3.4.1/topics/Comparison> You can try something like this... x[which(x[,2] %in% 0),] # [,1] [,2] # [1,] 4 0 # [2,] 5 0 ... but I'm not sure if it is bullet proof. Others may have more insight. Cheers, Ben> On Oct 24, 2017, at 3:05 PM, BooBoo <booboo at gforcecable.com> wrote: > > This has every appearance of being a bug. If it is not a bug, can someone tell me what I am asking for when I ask for "x[x[,2]==0,]". Thanks. > > > #here is the toy dataset > > x <- rbind(c(1,1),c(2,2),c(3,3),c(4,0),c(5,0),c(6,NA), > + c(7,NA),c(8,NA),c(9,NA),c(10,NA) > + ) > > x > [,1] [,2] > [1,] 1 1 > [2,] 2 2 > [3,] 3 3 > [4,] 4 0 > [5,] 5 0 > [6,] 6 NA > [7,] 7 NA > [8,] 8 NA > [9,] 9 NA > [10,] 10 NA > > > > #it contains rows that have NA's > > x[is.na(x[,2]),] > [,1] [,2] > [1,] 6 NA > [2,] 7 NA > [3,] 8 NA > [4,] 9 NA > [5,] 10 NA > > > > #seems like an unreasonable answer to a reasonable question > > x[x[,2]==0,] > [,1] [,2] > [1,] 4 0 > [2,] 5 0 > [3,] NA NA > [4,] NA NA > [5,] NA NA > [6,] NA NA > [7,] NA NA > > > > #this is more what I was expecting > > x[which(x[,2]==0),] > [,1] [,2] > [1,] 4 0 > [2,] 5 0 > > > > ______________________________________________ > R-help at 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.Ben Tupper Bigelow Laboratory for Ocean Sciences 60 Bigelow Drive, P.O. Box 380 East Boothbay, Maine 04544 http://www.bigelow.org Ecocast Reports: http://seascapemodeling.org/ecocast.html Tick Reports: https://report.bigelow.org/tick/ Jellyfish Reports: https://jellyfish.bigelow.org/jellyfish/ [[alternative HTML version deleted]]
z <- x[x[,2]==0&!is.na(x[,2]),] seems to work and get you what you want, but doesn't answer your question, z <- x[x[,2]==0&!is.na(x[,2]),] Best of luck, EK On Tue, Oct 24, 2017 at 3:05 PM, BooBoo <booboo at gforcecable.com> wrote:> This has every appearance of being a bug. If it is not a bug, can someone > tell me what I am asking for when I ask for "x[x[,2]==0,]". Thanks. > > > #here is the toy dataset > > x <- rbind(c(1,1),c(2,2),c(3,3),c(4,0),c(5,0),c(6,NA), > + c(7,NA),c(8,NA),c(9,NA),c(10,NA) > + ) > > x > [,1] [,2] > [1,] 1 1 > [2,] 2 2 > [3,] 3 3 > [4,] 4 0 > [5,] 5 0 > [6,] 6 NA > [7,] 7 NA > [8,] 8 NA > [9,] 9 NA > [10,] 10 NA > > > > #it contains rows that have NA's > > x[is.na(x[,2]),] > [,1] [,2] > [1,] 6 NA > [2,] 7 NA > [3,] 8 NA > [4,] 9 NA > [5,] 10 NA > > > > #seems like an unreasonable answer to a reasonable question > > x[x[,2]==0,] > [,1] [,2] > [1,] 4 0 > [2,] 5 0 > [3,] NA NA > [4,] NA NA > [5,] NA NA > [6,] NA NA > [7,] NA NA > > > > #this is more what I was expecting > > x[which(x[,2]==0),] > [,1] [,2] > [1,] 4 0 > [2,] 5 0 > > > > ______________________________________________ > R-help at 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/posti > ng-guide.html > and provide commented, minimal, self-contained, reproducible code. >[[alternative HTML version deleted]]
On Tue, Oct 24, 2017 at 3:05 PM, BooBoo <booboo at gforcecable.com> wrote:> This has every appearance of being a bug. If it is not a bug, can someone > tell me what I am asking for when I ask for "x[x[,2]==0,]". Thanks.You are asking for elements of x where the second column is equal to zero. help("==") and help("[") explain what happens when missing values are involved. I agree that the behavior is surprising, but your first instinct when you discover something surprising should be to read the documentation, not to post to this list. After having read the documentation you may post back here if anything remains unclear. Best, Ista> >> #here is the toy dataset >> x <- rbind(c(1,1),c(2,2),c(3,3),c(4,0),c(5,0),c(6,NA), > + c(7,NA),c(8,NA),c(9,NA),c(10,NA) > + ) >> x > [,1] [,2] > [1,] 1 1 > [2,] 2 2 > [3,] 3 3 > [4,] 4 0 > [5,] 5 0 > [6,] 6 NA > [7,] 7 NA > [8,] 8 NA > [9,] 9 NA > [10,] 10 NA >> >> #it contains rows that have NA's >> x[is.na(x[,2]),] > [,1] [,2] > [1,] 6 NA > [2,] 7 NA > [3,] 8 NA > [4,] 9 NA > [5,] 10 NA >> >> #seems like an unreasonable answer to a reasonable question >> x[x[,2]==0,] > [,1] [,2] > [1,] 4 0 > [2,] 5 0 > [3,] NA NA > [4,] NA NA > [5,] NA NA > [6,] NA NA > [7,] NA NA >> >> #this is more what I was expecting >> x[which(x[,2]==0),] > [,1] [,2] > [1,] 4 0 > [2,] 5 0 >> > > ______________________________________________ > R-help at 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.
On 10/25/2017 4:38 AM, Ista Zahn wrote:> On Tue, Oct 24, 2017 at 3:05 PM, BooBoo <booboo at gforcecable.com> wrote: >> This has every appearance of being a bug. If it is not a bug, can someone >> tell me what I am asking for when I ask for "x[x[,2]==0,]". Thanks. > You are asking for elements of x where the second column is equal to zero. > > help("==") > > and > > help("[") > > explain what happens when missing values are involved. I agree that > the behavior is surprising, but your first instinct when you discover > something surprising should be to read the documentation, not to post > to this list. After having read the documentation you may post back > here if anything remains unclear. > > Best, > Ista > >>> #here is the toy dataset >>> x <- rbind(c(1,1),c(2,2),c(3,3),c(4,0),c(5,0),c(6,NA), >> + c(7,NA),c(8,NA),c(9,NA),c(10,NA) >> + ) >>> x >> [,1] [,2] >> [1,] 1 1 >> [2,] 2 2 >> [3,] 3 3 >> [4,] 4 0 >> [5,] 5 0 >> [6,] 6 NA >> [7,] 7 NA >> [8,] 8 NA >> [9,] 9 NA >> [10,] 10 NA >>> #it contains rows that have NA's >>> x[is.na(x[,2]),] >> [,1] [,2] >> [1,] 6 NA >> [2,] 7 NA >> [3,] 8 NA >> [4,] 9 NA >> [5,] 10 NA >>> #seems like an unreasonable answer to a reasonable question >>> x[x[,2]==0,] >> [,1] [,2] >> [1,] 4 0 >> [2,] 5 0 >> [3,] NA NA >> [4,] NA NA >> [5,] NA NA >> [6,] NA NA >> [7,] NA NA >>> #this is more what I was expecting >>> x[which(x[,2]==0),] >> [,1] [,2] >> [1,] 4 0 >> [2,] 5 0 >> ______________________________________________ >> R-help at 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.I wanted to know if this was a bug so that I could report it if so. You say it is not, so you answered my question. As far as me not reading the documentation, I challenge anyone to read the cited help pages and predict the observed behavior based on the information given in those pages.
On Tue, 24 Oct 2017 15:05:01 -0400 BooBoo <booboo at gforcecable.com> wrote:> This has every appearance of being a bug. If it is not a bug, can > someone tell me what I am asking for when I ask for "x[x[,2]==0,]". > Thanks. >As others have pointed out not a bug, but very "unintuitively" explained in the documentation. On the other hand, be glad it isn't a .dbf file and that you are not using dBASE. Ancient history of course, but dBASE used to convert missing data (NAs) into 0s when you weren't looking. If you were extremely unlucky and stuck in the role of autodidact, your success in both noticing and identifying the problem could be a long time coming. In the meantime, your instructors might be numerate, and point out rudely your inability to carry out even simple calculations of averages, or they could be innumerate and happily accept your mistakes as gospel because you included "quantified" results in you paper. Good luck.