Hi, I am extremely new to R, and was wondering if someone would be able to help me with a question regarding the expand.grid function. When I input expand.grid.rep <- function(x, n=1) do.call(expand.grid, rep(list(x),n)) expand.grid.rep(c("a", "b", "c"), 3) my output is as follows, Var1 Var2 Var3 1 a a a 2 b a a 3 c a a 4 a b a 5 b b a 6 c b a 7 a c a 8 b c a 9 c c a 10 a a b 11 b a b 12 c a b 13 a b b 14 b b b 15 c b b 16 a c b 17 b c b 18 c c b 19 a a c 20 b a c 21 c a c 22 a b c 23 b b c 24 c b c 25 a c c 26 b c c 27 c c c I was wondering if there was anyway I can change the row numbers to labels that indicate what is in each row. Instead of a 1, I'd like to have a label saying "aaa", etc. I'm not sure if this is even possible within the expand.grid function but any help would be appreciated. Thanks. [[alternative HTML version deleted]]
I don't think you can do it within expand.grid() but something like this might work: rownames(x) <- apply(x, 1, paste, collapse = "") Michael On Tue, May 1, 2012 at 5:05 AM, Kelly Cool <kellycool79 at yahoo.com> wrote:> Hi, > > I am extremely new to R, and was wondering if someone would be able to help me with a question regarding the expand.grid function. When I input > > expand.grid.rep <- function(x, n=1) do.call(expand.grid, rep(list(x),n)) > expand.grid.rep(c("a", "b", "c"), 3) > > my output is as follows, > > Var1 Var2 Var3 > 1 ? ? a ? ?a ? ?a > 2 ? ? b ? ?a ? ?a > 3 ? ? c ? ?a ? ?a > 4 ? ? a ? ?b ? ?a > 5 ? ? b ? ?b ? ?a > 6 ? ? c ? ?b ? ?a > 7 ? ? a ? ?c ? ?a > 8 ? ? b ? ?c ? ?a > 9 ? ? c ? ?c ? ?a > 10 ? ?a ? ?a ? ?b > 11 ? ?b ? ?a ? ?b > 12 ? ?c ? ?a ? ?b > 13 ? ?a ? ?b ? ?b > 14 ? ?b ? ?b ? ?b > 15 ? ?c ? ?b ? ?b > 16 ? ?a ? ?c ? ?b > 17 ? ?b ? ?c ? ?b > 18 ? ?c ? ?c ? ?b > 19 ? ?a ? ?a ? ?c > 20 ? ?b ? ?a ? ?c > 21 ? ?c ? ?a ? ?c > 22 ? ?a ? ?b ? ?c > 23 ? ?b ? ?b ? ?c > 24 ? ?c ? ?b ? ?c > 25 ? ?a ? ?c ? ?c > 26 ? ?b ? ?c ? ?c > 27 ? ?c ? ?c ? ?c > > I was wondering if there was anyway I can change the row numbers to labels that indicate what is in each row. Instead of a 1, I'd like to have a label saying "aaa", etc. I'm not sure if this is even possible within the expand.grid function but any help would be appreciated. Thanks. > ? ? ? ?[[alternative HTML version deleted]] > > > ______________________________________________ > 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. >
Kelly Cool
2012-May-28 19:16 UTC
[R] Question about extracting certain rows from one column in a data.frame
I was wondering if there was a quick way to extract out certain rows from a data set in R? I have a data.frame, LOG, where in one column, sample_data_tx, there is a list of 62 different types of treatment. I've sub-selected the rows that contain the names, "PLO" and "NOY" to make a new vector which I call, Test. Here's my code so far, ##In LOG data set, Test set is every treatment, PLO and NOY## ##Select rows in the LOG data set that contain Noy## Noy <- which(LOG$sample_data_tx == "Noy") ##Select rows in the LOG data set that contain PLO## PLO <- which(LOG$sample_data_tx == "PLO") ##Make Test Set## Test <- c(Noy, PLO)> Test[1] 8 24 50 23 29 46 55 Within the data.frame, LOG, I would like to now make another vector, "Training", that contains every row in the column, "sample_data_tx", except rows 8, 24, 50, 23, 29, 46, 55. "Test" is also an integer and I am hoping to make a hierarchical plot with both the "Test" and "Training" vectors so I am not sure if I first need to convert the data from integer to numeric form? I am new to R so all help is appreciated. Thanks in advance. [[alternative HTML version deleted]]