Hi: Natasha said: ******** 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 ********* It's a continuation of the reshape problem, but we have to change the NAs in the reshaped data frame to zeros first: df2[is.na(df2)] <- 0 xtabs(n ~ center + age, data = df2) age center 5 6 7 8 9 10 11 12 13 14 1 0 10 0 13 0 9 0 7 0 10 2 0 0 12 14 0 0 16 0 0 13 3 6 0 0 0 10 0 12 0 9 0 How's that? Dennis On Sun, Sep 12, 2010 at 9:46 AM, Dennis Murphy <djmu...@gmail.com> wrote: > 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.asa...@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]]
______________________________________________ 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.