Greeting R helpers J I am not familiar with R but I have to use it to analyze data set that I have (30,000 20,000) I want to change the structure of the dataset and I am wondering how that might be possible in R A main data looks like this: some entities are empty Age No. Age No. Age No. Center1 5 2 8 7 Center2 10 7 20 9 4 10 But what I want the data to look like is Age 1 2 3 4 5 6 7 8 9 10 … 20 Center1 2 7 Center2 10 7 9 It should read the entities one by one when j is in age column take its value and consider it as the column number for new matrix then go to next entity (j No. columns) and put that entity under the columns number identified in previous step. In other word it should get the each element in No. columns (one by one) and place them in a new matrix under the column number which are equal to entity of age columns of first matrix i have tired ncol, and cbind and things like that but I guess im on the wrong path because it is not working. I am reading this fine with read.csv and writing back the same way. do you know how I can make this work?? Is it even possible to do something like this? Thank you in advance Natasha [[alternative HTML version deleted]]
On Sep 12, 2010, at 10:45 AM, Natasha Asar wrote:> Greeting R helpers J > I am not familiar with R but I have to use it to analyze data set > that I have > (30,000 20,000) > I want to change the structure of the dataset and I am wondering how > that might > be possible in R > A main data looks like this: some entities are empty > Age No. Age No. Age No. > Center1 5 2 8 7 > > Center2 10 7 20 > 9 4 10 > But what I want the data to look like is > Age 1 2 3 > 4 5 6 7 8 > 9 10 ? 20 > Center1 > 2 7 > Center2 > 10 > 7 9 > > It should read the entities one by one > when j is in age column take its value and consider it as the column > number for > new matrix > then go to next entity (j No. columns) and put that entity under the > columns > number identified in previous step. > In other word > it should get the each element in No. columns (one by one) and place > them in a > new matrix under the column number which are equal to entity of age > columns of > first matrix > i have tired ncol, and cbind and things like that but I guess im on > the wrong > path because it is not working. I am reading this fine with > read.csv and > writing back the same way. > do you know how I can make this work?? Is it even possible to do > something like > this? > Thank you in advance > Natasha > > > > [[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.David Winsemius, MD West Hartford, CT
I changed it so i hope it will look better now the matrix is like this: Age No. Age No. Age No. Center1 5 2 8 7 Center2 10 7 20 9 4 10 column name = sequence of age-no. But what I want the data to look like is this Age 1 2 3 4 5 6 7 8 9 10 … 20 Center1 2 7 Center2 10 7 9 column name= age of ppl entries = number of ppl with that age in on center thanks again Natasha [[alternative HTML version deleted]]
Hi: Here's a made up example using the reshape function: Input data: df <- structure(list(center = 1:3, age1 = c(6L, 7L, 5L), n1 = c(10L, 12L, 6L), age2 = c(8L, 8L, 8L), n2 = c(13L, 14L, NA), age3 = c(10L, 10L, 9L), n3 = c(9L, NA, 10L), age4 = c(12L, 11L, 11L), n4 = c(7L, 16L, 12L), age5 = c(14L, 14L, 13L), n5 = c(10L, 13L, 9L)), .Names c("center", "age1", "n1", "age2", "n2", "age3", "n3", "age4", "n4", "age5", "n5"), class = "data.frame", row.names = c(NA, -3L)) df center age1 n1 age2 n2 age3 n3 age4 n4 age5 n5 1 1 6 10 8 13 10 9 12 7 14 10 2 2 7 12 8 14 10 NA 11 16 14 13 3 3 5 6 8 NA 9 10 11 12 13 9 # To reshape more than one variable at a time, you need # to put the sets of variables into a list, as follows: df2 <- reshape(df, idvar = 'center', varying list(c(paste('age', 1:5, sep = '')), c(paste('n', 1:5, sep = ''))), v.names = c('age', 'n'), times = 1:5, direction = 'long') df2 center time age n 1.1 1 1 6 10 2.1 2 1 7 12 3.1 3 1 5 6 1.2 1 2 8 13 2.2 2 2 8 14 3.2 3 2 8 NA 1.3 1 3 10 9 2.3 2 3 10 NA 3.3 3 3 9 10 1.4 1 4 12 7 2.4 2 4 11 16 3.4 3 4 11 12 1.5 1 5 14 10 2.5 2 5 14 13 3.5 3 5 13 9 HTH, Dennis On Sun, Sep 12, 2010 at 7:45 AM, Natasha Asar <natasha.asar83@yahoo.com>wrote:> Greeting R helpers J > I am not familiar with R but I have to use it to analyze data set that I > have > (30,000 20,000) > I want to change the structure of the dataset and I am wondering how that > might > be possible in R > A main data looks like this: some entities are empty > Age No. Age No. Age No. > Center1 5 2 8 > 7 > > Center2 10 7 20 > 9 4 10 > But what I want the data to look like is > Age 1 2 3 > 4 5 6 7 8 > 9 10 … 20 > Center1 > 2 7 > Center2 > 10 > 7 9 > > It should read the entities one by one > when j is in age column take its value and consider it as the column number > for > new matrix > then go to next entity (j No. columns) and put that entity under the > columns > number identified in previous step. > In other word > it should get the each element in No. columns (one by one) and place them > in a > new matrix under the column number which are equal to entity of age columns > of > first matrix > i have tired ncol, and cbind and things like that but I guess im on the > wrong > path because it is not working. I am reading this fine with read.csv and > writing back the same way. > do you know how I can make this work?? Is it even possible to do something > like > this? > Thank you in advance > Natasha > > > > [[alternative HTML version deleted]] > > > ______________________________________________ > R-help@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. > >[[alternative HTML version deleted]]