[R] HELP: How to subtract a vector out of each row of a matrix or array
Geoffrey Zhu
zyzhu2000 at gmail.com
Thu Nov 15 19:45:25 CET 2007
Hi All,
I am having great trouble doing something pretty simple.
Here is what I did:
> x <- read.table("clipboard")
> dim (x)
[1] 126 10
> typeof(x)
[1] "list"
> w <- array(x)
> typeof(w)
"list"
Q1: How come after constructing an array out of the list, the type of
the array is still "list"?
> w <- as.array(x)
Error in `dimnames<-.data.frame`(`*tmp*`, value = list(c("V1", "V2", "V3", :
invalid 'dimnames' given for data frame
Q2: How do I covnert a two dimensional list to an array then?
> y<-as.matrix(x)
> dim(y)
[1] 126 10
Finally, this works.
> m<-colMeans(y)
> m
V1 V2 V3 V4 V5 V6
0.098965679 0.075252330 0.046776996 0.021706852 0.005319685 0.003453889
V7 V8 V9 V10
0.037819506 0.021107303 0.039035427 0.002694224
Get the mean of each column.
Q3: Now the big question. I want to substract V1 from each element of
column 1, V2 from each element of column 2, ... How do I do this?
I ended up doing this, which is highly inefficient.
> z<- t(t(y)-m)
Thanks,
Geoffrey
More information about the R-help
mailing list