Advertisement
Guest User

Untitled

a guest
May 25th, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.95 KB | None | 0 0
  1. sumfile <- read.csv('https://dl.dropbox.com/s/zy6b5mjcu7uteof/data_all_PAR_max.csv')
  2. codename = "EXEM"
  3. descriptor = "max"
  4. radtype = "PAR"
  5. totYrs = c(1997:2015)
  6. ylbl = expression("PAR " ~ (mu ~ mol ~ photons ~ m^{-2} ~ s^{-1}))
  7. clr = "blue"
  8.  
  9. group <- melt(sumfile, id.vars = 'date', variable.name = 'series')
  10. setnames(group, old = c('date','series','value'), new = c('Date','Year',radtype))
  11. group$Date <- as.Date(group$Date)
  12. # group <- na.omit(group) # uncommenting resolves error!
  13. o <- order(group$Date)
  14. lo <- loess(PAR ~ as.numeric(Date), span = 0.25, data=group)
  15.  
  16. plot(group$Date,group$PAR,pch=19,cex=0.1, col=clr,
  17. xlab ="Date",
  18. ylab = ylbl,
  19. main = paste('Loess curve for', descriptor, radtype, 'from', min(totYrs), 'to',
  20. max(totYrs), 'nmeasured at', codename, 'met',sep=' '))
  21. lines(group$Date[o], lo$fitted[o], col='red', lwd=1)
  22.  
  23. points(group$Date[o], lo$fitted[o], col='red', lwd=1)
  24.  
  25. for (i in totYrs) {
  26. tryCatch({
  27. yval <- paste(radtype, i, descriptor,sep='_')
  28.  
  29. sumfile$date <- as.Date(sumfile$date)
  30. lo_ <- eval(parse(text = paste("loess(", yval, "~ as.numeric(date),
  31. span = 0.25, data=sumfile)")))
  32. oo <- order(sumfile$date)
  33. plot(sumfile$date, eval(parse(text = paste("sumfile$",yval))),
  34. pch=19,cex=0.1, col=clr,
  35. xlab ="Date",
  36. ylab = ylbl,
  37. main = paste('Loess curve for', descriptor, radtype, 'measured atn',
  38. codename, 'met during', i, '/', i+1, 'field season',sep=' '))
  39. lines(sumfile$date[oo], lo_$fitted[oo], col='red', lwd=1)
  40. }, error=function(e){print("One or more years was not plotted because there was no data")})
  41. }
  42.  
  43. sumfile$date <- as.Date(sumfile$date)
  44. no_na <- na.omit(subset(sumfile, select=c(date,PAR_2013_max)))
  45. lo13 <- loess(PAR_2013_max ~ as.numeric(date), span = 0.25, data=no_na)
  46. oo <- order(sumfile$date)
  47. plot(sumfile$date, sumfile$PAR_2013_max)
  48. lines(sumfile$date[oo], lo13$fitted[oo], col='red', lwd=1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement