[R] inconsistent(?) behavior of as.vector

Setzer.Woodrow@epamail.epa.gov Setzer.Woodrow at epamail.epa.gov
Wed Jan 16 17:18:32 CET 2002


According to the documentation for as.vector, it removes all attributes
from its argument ("the attributes of x are removed").  This does not
seem to be the case for a list with a dim attribute.  Consider the
following code:

numarray <- vector("numeric",4)
dim(numarray) <- c(2,2)
dimnames(numarray) <- list(c("A","B"),c("C","D"))
numarray[] <- 1:4

listarray <- vector("list",4)
dim(listarray) <- c(2,2)
dimnames(listarray) <- list(c("A-","A+"),c("B-","B+"))
listarray[["A+","B-"]] <- A ~ 1
listarray[["A+","B+"]] <- A + B ~ 1

## You get the idea for the values of the elements of listarray

Now, what are the attributes in each case?
> print(attributes(numarray))
$dim
[1] 2 2

$dimnames
$dimnames[[1]]
[1] "A" "B"

$dimnames[[2]]
[1] "C" "D"

> print(attributes(listarray))
$dim
[1] 2 2

$dimnames
$dimnames[[1]]
[1] "A-" "A+"

$dimnames[[2]]
[1] "B-" "B+"

So, both objects have the attributes I expected.  However, applying as.vector does not remove the atrributes from the object based on a list:

> print(str(as.vector(numarray)))
 num [1:4] 1 2 3 4
NULL
> print(str(as.vector(listarray)))
List of 4
 $ : NULL
 $ :Class 'formula' length 3 A ~ 1
  .. ..- attr(*, ".Environment")=length 9 <environment>
 $ : NULL
 $ :Class 'formula' length 3 A + B ~ 1
  .. ..- attr(*, ".Environment")=length 9 <environment>
 - attr(*, "dim")= int [1:2] 2 2
 - attr(*, "dimnames")=List of 2
  ..$ : chr [1:2] "A-" "A+"
  ..$ : chr [1:2] "B-" "B+"
NULL

I am working with version 1.4.0 (not patched) on Linux (RedHat 7.1 on
i686), but the same thing happens in 1.3.1 under Windows 98.  Is this
intended behavior (in which case, the documentation for as.vector should
probably be changed), or a bug?


R. Woodrow Setzer, Jr.                                            Phone:
(919) 541-0128
Experimental Toxicology Division                       Fax:  (919)
541-5394
Pharmacokinetics Branch
NHEERL MD-74; US EPA; RTP, NC 27711

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list