Skip to content
Prev 275720 / 398506 Next

Syntax Check: rshape2 melt()

Try this, based on your small example:
+      site   sampdate param quant
+ 1    UDS-O 2006-12-06   TDS 10800
+ 4   STC-FS 1996-06-14  Cond   280
+ 7    UDS-O 2007-10-04    Mg  1620
+ 9    UDS-O 2007-10-04   SO4  7580
+ 19 JCM-10B 2007-06-21    Ca    79
+ 20 JCM-10B 2007-06-21    Cl   114"), header = TRUE, stringsAsFactors = FALSE)
# Define param so that all of its levels are represented:
tds.a <- within(tds.a, {
           param = factor(param, levels = c('TDS', 'Cond', 'Mg', 'Ca',
'Cl', 'Na', 'SO4'))
           sampdate = as.Date(sampdate)  } )
library('reshape2')
dcast(tds.a, site + sampdate ~ param, value_var = 'quant')

# Result:
     site   sampdate   TDS Cond   Mg Ca  Cl  SO4
1 JCM-10B 2007-06-21    NA   NA   NA 79 114   NA
2  STC-FS 1996-06-14    NA  280   NA NA  NA   NA
3   UDS-O 2006-12-06 10800   NA   NA NA  NA   NA
4   UDS-O 2007-10-04    NA   NA 1620 NA  NA 7580

HTH,
Dennis
On Thu, Oct 27, 2011 at 8:26 AM, Rich Shepard <rshepard at appl-ecosys.com> wrote: