# complete documentation for this script can be found at : # http://ucsb.piscoweb.org/~cburt/intertidal/workflow.html classes = c( 'factor', #site_code 'factor', #survey_rep 'integer', #year 'integer', #month 'integer', #day 'factor', #section 'numeric', #transect 'factor', #location 'factor', #classification_code 'factor', #sampler_code 'numeric', #size ) swath_data = read.csv( file="swath_numeric.csv", na.strings='.', head=TRUE, sep=",", colClasses = classes ) sites = unique(swath_data$site_code); class_codes = unique(swath_data$class_code) data = data.frame() for(site in sites){ data_for_site = subset(swath_data, site_code == sites[site]); years = unique(data_for_site$year) for(y in years){ data_for_year = subset(data_for_site, year == y) t = table(data_for_year[c('transect', 'class_code')]) mean = colMeans(t) standard_deviation = sd(t) n = length(t[, 1]) standard_error = standard_deviation / sqrt(n) df = data.frame( year = y, site_code = sites[site], class_code=as.array(labels(mean)), mean=mean, standard_deviation=standard_deviation, standard_error=standard_error, n = n ) data = rbind(data, df) } } write.table( data, file="./swath_output.csv", row.names=FALSE, col.names = FALSE, sep="\t", quote=FALSE )