[Rd] matrices with names

Suzen, Mehmet msuzen at gmail.com
Thu Jul 27 23:25:57 CEST 2017


Not always, see what happens with lapply:
> x<-matrix(12,1,1)
> names(x)<-"one"
> y<-matrix(1,1,1)
> names(y)<-"one"
> dput(lapply(x,`+`,e2=y))
structure(list(one = structure(13, .Dim = c(1L, 1L))), .Names = "one")
>dput(lapply(x,`+`,e2=1))
structure(list(one = 13), .Names = "one")


Prof. Ripley has pointed out this some time ago:
https://stat.ethz.ch/pipermail/r-devel/2011-October/062297.html

Note that ?`+` tells:

     The rules for determining the attributes of the result are rather
     complicated.  Most attributes are taken from the longer argument.
     Names will be copied from the first if it is the same length as
     the answer, otherwise from the second if that is.  If the
     arguments are the same length, attributes will be copied from
     both, with those of the first argument taking precedence when the
     same attribute is present in both arguments. For time series,
     these operations are allowed only if the series are compatible,
     when the class and ‘tsp’ attribute of whichever is a time series
     (the same, if both are) are used.  For arrays (and an array
     result) the dimensions and dimnames are taken from first argument
     if it is an array, otherwise the second.



More information about the R-devel mailing list