[R] subsetting matrix replacement oddities
Ross Boylan
ross at biostat.ucsf.edu
Thu Sep 18 01:52:49 CEST 2003
When assigning a dataframe to a subset of a matrix I got a very odd
result. Am I missing something, or is this a bug? Details are below.
Also, if m is defined outside of the current function, is
m[...] <<- foo
necessary to update it, or does regular replacement
m[....] <- foo
work (that is, does it update the "global" rather than creating a
"local" that conceals it)? I got conflicting results, which were
tangled up with the oddity below.
--------------------------------------------------------
Browse[1]> covs
epilepsy other.cancer
680 0 0
681 0 0
682 0 0
683 0 1
684 0 0
Browse[1]> m <- matrix(NA, 5,2)
Browse[1]> m[,1:2] <- covs
Browse[1]> m
[[1]]
[1] 0 0 0 0 0
[[2]]
[1] 0 0 0 1 0
[[3]]
[1] 0 0 0 0 0
[[4]]
[1] 0 0 0 1 0
[[5]]
[1] 0 0 0 0 0
[[6]]
[1] 0 0 0 1 0
[[7]]
[1] 0 0 0 0 0
[[8]]
[1] 0 0 0 1 0
[[9]]
[1] 0 0 0 0 0
[[10]]
[1] 0 0 0 1 0
Browse[1]> dim(covs)
[1] 5 2
Browse[1]> class(covs)
[1] "data.frame"
Browse[1]> class(m)
[1] "list"
Browse[1]> length(m)
[1] 10
Fortunately, the following seems to work as expected:
Browse[1]> m[,1:2] <- as.matrix(covs)
Ross Boylan wk: (415) 502-4031
530 Parnassus Avenue (Library) rm 115-4 ross at biostat.ucsf.edu
Dept of Epidemiology and Biostatistics fax: (415) 476-9856
University of California, San Francisco
San Francisco, CA 94143-0840 hm: (415) 550-1062
More information about the R-help
mailing list