Thank you Phil, your method worked great! Again, I was about to write back and add some facts -- all of the columns need to be 'character'... when I tried my and Jonathan's solutions with columns that were factors, I got errors.
Here's what happened when I tried to use the 'dcast' method on my actual (not contrived) data with factors: ------------------ >county_sibley <- subset(tmp, county_id == 72) >county_sibley <- subset(county_sibley, prct_std == "GIBBON")[,c("prct_std","prct_name","year")] >county_sibley$prct_name <- factor(as.character(county_sibley$prct_name)) >county_sibley$prct_std <- factor(county_sibley$prct_std) >county_sibley$year <- factor(county_sibley$year) >print(county_sibley) prct_std prct_name year 3515 GIBBON GIBBON 2002 7631 GIBBON GIBBON 2006 9085 GIBBON GIBBON 2010 >str(county_sibley) 'data.frame': 3 obs. of 3 variables: $ prct_std : Factor w/ 1 level "GIBBON": 1 1 1 $ prct_name: Factor w/ 1 level "GIBBON": 1 1 1 $ year : Factor w/ 3 levels "2002","2006",..: 1 2 3 county_sibley_wide <- dcast(county_sibley, prct_std ~ year, value_var = "prct_name") Error in names(data) <- array_names(res$labels[[2]]) : 'names' attribute [3] must be the same length as the vector [1] ------------------ Converting all used columns to character made the 'cast' and 'dcast' solution work, so that should be noted. Thanks to everybody, Matt On Wed, Dec 8, 2010 at 8:53 PM, Phil Spector <spec...@stat.berkeley.edu>wrote: > Another way, using just base R is > > reshape(df,idvar='y',timevar='x',v.names='z',direction='wide') >> > y z.A z.B z.C > 1 D a b c > 4 E d e f > 7 F g h i > > - Phil Spector > Statistical Computing Facility > Department of Statistics > UC Berkeley > spec...@stat.berkeley.edu > > > > > On Wed, 8 Dec 2010, Matthew Pettis wrote: > > Hi Jonathan, >> >> Thank you very much! I was about to recall this after I found this >> discussion (https://stat.ethz.ch/pipermail/r-help/2008-June/164440.html), >> but I think your solution is more tidy. >> >> Thank you very much! >> Matt >> >> On Wed, Dec 8, 2010 at 8:33 PM, Jonathan Christensen <dzhona...@gmail.com >> >wrote: >> >> Matt, >>> >>> library(reshape2) >>> wide.df <- dcast(df, y ~ x) >>> >>> Works great for me. >>> >>> Jonathan >>> >>> >>> On Wed, Dec 8, 2010 at 7:26 PM, Matthew Pettis <matthew.pet...@gmail.com >>> > >>> wrote: >>> >>>> Hi, >>>> >>>> I was wondering if there is an easy way that I am missing for turning a >>>> >>> long >>> >>>> dataframe into a wide one. Below is sample code that will make what I >>>> >>> have >>> >>>> and, in comments, the form of what I want: >>>> >>>> # Have: dataframe like 'df' >>>> df <- expand.grid( x=LETTERS[1:3], y=LETTERS[4:6]) >>>> df$z <- letters[1:length(df[,1])] >>>> >>>> # Want: data.frame that has following form: >>>> # A B C >>>> # D a b c >>>> # E d e f >>>> # F g h i >>>> >>>> >>>> I looked at 'xtabs' and 'cast' from reshape/reshape2, but unless I'm >>>> misunderstanding something, these will work only for the 'z' column >>>> being >>>> numeric, not textual. Is there an easy way to do this with 'z' being >>>> textual rather than numeric? >>>> >>>> tia, >>>> Matt >>>> >>>> [[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. >>>> >>>> >>> >> >> >> -- >> Seven Deadly Sins (Gandhi): >> - Wealth without work - Politics without principle >> - Pleasure without conscience - Commerce without morality >> - Science without humanity - Worship without sacrifice >> - Knowledge without character >> >> [[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. >> >> -- Seven Deadly Sins (Gandhi): - Wealth without work - Politics without principle - Pleasure without conscience - Commerce without morality - Science without humanity - Worship without sacrifice - Knowledge without character [[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.