hello all, thank you for taking the time I have a matrix A that have column names (let say n columns), I want to reduce the matrix to have just a few of those column (p colums, this is trivial), but for the lines I want only the lines such that A(i,J) is part of a list (J is fixed and known) I am sure it is very easy but I don't find it (I tryed which but it doesn't seem to work) Surely I could do a loop but I want to learn how to do things without time consuming loops. Thanks Colin -- View this message in context: http://n4.nabble.com/Accessing-values-of-a-matrix-tp1561932p1561932.html Sent from the R help mailing list archive at Nabble.com.
Hi Colin, You'll get a better answer if you provide an actual example, including what you tried that didn't work. It looks to me like you want to subset a data frame based on column names, though I'm not sure what A(i, J) is supposed to be. if so, then this is one approach:> A <- data.frame(A = 1:3, B = 4:6, C=7:9) > AA B C 1 1 4 7 2 2 5 8 3 3 6 9> J <- c("A", "C") > newA <- A[, colnames(A) %in% J] > newAA C 1 1 7 2 2 8 3 3 9 Sarah On Fri, Feb 19, 2010 at 12:11 PM, statquant <colin.umansky at barcap.com> wrote:> > hello all, > thank you for taking the time > > I have a matrix A that have column names (let say n columns), I want to > reduce the matrix to have just a few of those column (p colums, this is > trivial), but for the lines I want only the lines such that A(i,J) is part > of a list (J is fixed and known) > > I am sure it is very easy but I don't find it (I tryed which but it doesn't > seem to work) > Surely I could do a loop but I want to learn how to do things without time > consuming loops. > > Thanks > Colin > ---- Sarah Goslee http://www.functionaldiversity.org
Hello Sarah, thanks for answering For example if I have the following example test <- as.data.frame(matrix(c(1,2,3,4, 11,12,13,14, "a","b","b","c"), nrow = 3, ncol=3,dimnames = list(c("r1","r2","r3","r4"),NULL)) V1 V2 V3 r1 1 11 a r2 2 12 b r3 3 13 b r4 4 14 c it is easy to select test <- test[,mylist] with for example mylist <- c("V1","V3") V1 V3 r1 1 a r2 2 b r3 3 b r4 4 c But after how can I restrict test in selecting the rows where the result in column V3 are in a list mylist2, with for example mylist2 <-c("b","c","d") ? which would give as an example V1 V3 r2 2 b r3 3 b r4 4 c Regards Colin -- View this message in context: http://n4.nabble.com/Accessing-values-of-a-matrix-tp1561932p1564533.html Sent from the R help mailing list archive at Nabble.com.
On Feb 22, 2010, at 8:45 AM, statquant wrote:> > Hello Sarah, thanks for answering > For example if I have the following example > > test <- as.data.frame(matrix(c(1,2,3,4, 11,12,13,14, > "a","b","b","c"), nrow > = 3, ncol=3,dimnames = list(c("r1","r2","r3","r4"),NULL))This is a malformed example. Should be: > test <- as.data.frame(matrix(c(1,2,3,4, 11,12,13,14, "a","b","b","c"), nrow= 4, ncol=3,dimnames = list(c("r1","r2","r3","r4"),NULL)) ) > test V1 V2 V3 r1 1 11 a r2 2 12 b r3 3 13 b r4 4 14 c> > V1 V2 V3 > r1 1 11 a > r2 2 12 b > r3 3 13 b > r4 4 14 c > > it is easy to select test <- test[,mylist] with for example mylist <- > c("V1","V3") > > V1 V3 > r1 1 a > r2 2 b > r3 3 b > r4 4 c > > But after how can I restrict test in selecting the rows where the > result in > column V3 are in a list mylist2, with for example mylist2 <- > c("b","c","d") ? > which would give as an example?"%in%" ?"[" ?subset > test[test$V3 %in% c("b","c","d"), c("V1","V2")] V1 V2 r2 2 12 r3 3 13 r4 4 14 #Or: > subset(test, V3 %in% c("b","c","d"), select=c(V1, V3)) V1 V3 r2 2 b r3 3 b r4 4 c> > V1 V3 > r2 2 b > r3 3 b > r4 4 c > > Regards > Colin > -- > View this message in context: http://n4.nabble.com/Accessing-values-of-a-matrix-tp1561932p1564533.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help at r-project.org mailing list > 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.
OKKK Thanks a lot for letting me know the subset function Cheers -- View this message in context: http://n4.nabble.com/Accessing-values-of-a-matrix-tp1561932p1564724.html Sent from the R help mailing list archive at Nabble.com.