[R] Bug?

William Dunlap wdunlap at tibco.com
Tue Aug 8 20:54:18 CEST 2017


I think the help file for apply() warns you that if you give it a
data.frame, the data.frame will be converted to a matrix, with X <-
as.matrix(X), before FUN is called on its rows or columns.  Look at what
as.matrix does to your data: since there is a non-numeric column it
produces a character matrix and since in the second example some numbers
have 2 digits, the other numbers have a leading space.

> as.matrix(a[1:2,])
  row column assay    plate
1 "B" "2"    "Assay1" "1"
2 "C" "2"    "Assay1" "1"
> as.matrix(a[1:3,])
  row column assay    plate
1 "B" " 2"   "Assay1" "1"
2 "C" " 2"   "Assay1" "1"
3 "B" "10"   "Assay1" "1"

I avoid using apply() on data.frames.


Bill Dunlap
TIBCO Software
wdunlap tibco.com

On Tue, Aug 8, 2017 at 11:39 AM, Ramiro Barrantes <
ramiro at precisionbioassay.com> wrote:

> Hello,
>
> In my code I found something that looks like an anomaly, I found a
> reproducible example in which I am just trying to compare each row in a
> data frame against the first row:
>
> a<-data.frame(row=c("B","C","B"),column=c(2,2,10),assay=c("
> Assay1","Assay1","Assay1"),plate=c(1,1,1),stringsAsFactors=FALSE)
> apply(a[1:2,],1,function(x) { all(x==a[1,]) })
> apply(a[1:3,],1,function(x) { all(x==a[1,]) })
> > >     1     2
>  TRUE FALSE
> >     1     2     3
> FALSE FALSE FALSE
> >
>
> The second result is not right, it should be TRUE FALSE FALSE
>
> Am I doing something wrong or is this a bug?  With other inputs it seems
> to work ok
>
> Here is my sessionInfo()
> > sessionInfo()
> R version 3.2.5 (2016-04-14)
> Platform: x86_64-redhat-linux-gnu (64-bit)
> Running under: CentOS release 6.9 (Final)
>
> locale:
>  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
>  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
>  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
>  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C
>  [9] LC_ADDRESS=C               LC_TELEPHONE=C
> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
>
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base
> >
>
> Thank you,
> Ramiro
>
>
>
> Ramiro Barrantes Ph.D.
> Precision Bioassay, Inc.
> 431 Pine St., Suite 110
> Burlington, VT 05401
> 802 865 0155
> 802 861 2365 FAX
> www.precisionbioassay.com<https://west.exch023.serverdata.
> net/owa/redir.aspx?SURL=wN3KzpoKXAcetH7sTOTnSyfg-
> iAXFIinpPUtRcduCFCtkgZrUSDTCGgAdAB0AHAAOgAvAC8AdwB3AHcALgBwA
> HIAZQBjAGkAcwBpAG8AbgBiAGkAbwBhAHMAcwBhAHkALgBjAG8AbQA.&URL=
> http%3a%2f%2fwww.precisionbioassay.com>
> ramiro at precisionbioassay.com
>
> CONFIDENTIALITY NOTICE: This email, including any attach...{{dropped:9}}
>
> ______________________________________________
> 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.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list