If departing from base R into contributed territory, tidyr::spread is well-suited to this.

library(dplyr)
library(tidyr)
dta <- read.csv( "http://doylesdartden.com/R/ExampleData.csv";
               , header = TRUE
               , as.is = TRUE
               )
result <- (   dta # starting with your data...
          # keep only relevant columns
          %>% select( Location, Year, GW_Elevation )
          # make the key column look like your desired column names
          %>% mutate( Year = sprintf( "GW_Elevation %d", Year ) )
          # spread the "long" data out "wide"
          %>% spread( Year, GW_Elevation )
          )

On Tue, 21 Aug 2018, Jim Lemon wrote:

Hi David,
As you want the _values_ of Year from the initial data frame appended
to the _names_ of GW_Elevation, you can't do it the easy way:

dddf<-read.table(text="Location        Date        Year      GW_Elevation
127(I)        5/14/2006     2006       752.46
119(I)        5/14/2006     2006       774.67
127(I)        6/11/2007     2007       752.06
119(I)        6/11/2007     2007       775.57",
header=TRUE)
library(prettyR)
# easy part
sdddf<-stretch_df(dddf[c(1,3,4)],"Location",c("Year","GW_Elevation"))
sdddf

This only works for a data frame with the structure and names of the initial one

# hard part
sdddf_dim<-dim(sdddf)
nyears<-(sdddf_dim[2] - 1)/2
fsdddf<-sdddf[,c(1,1:nyears+nyears+1)]
names(fsdddf)<-c("Location",paste("GW_Elevation",unique(dddf$Year),sep="_"))
fsdddf

I would strongly suggest being happy with the easy way, because if the
order of years isn't ascending, the hard way won't work.

Jim

On Tue, Aug 21, 2018 at 5:17 AM, David Doyle <kydaviddo...@gmail.com> wrote:
Hello everyone,

I'm trying to generate tables of my data out of R for my report.

My data is setup in the format as follows and the example can be found at:
http://doylesdartden.com/R/ExampleData.csv

Location        Date        Year      GW_Elevation
127(I)        5/14/2006     2006       752.46
119(I)        5/14/2006     2006       774.67
127(I)        6/11/2007     2007       752.06
119(I)        6/11/2007     2007       775.57

I would like to generate a table that showed

Location    GW_Elevation 2006    GW_Elevation 2007    GW_Elevation xxx.....

119(I)                    774.67                      775.57
          xxxx
127(I)                    752.46                      752.06
          xxxx
XXXX                          XX                           XX

 Any thoughts on how to transform the data so it would be in this format??

Thank you for your time

David Doyle

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.


---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnew...@dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                      Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.

Reply via email to