## ----setup, include=FALSE----------------------------------------------------- knitr::opts_chunk$set(echo = TRUE) ## ----get---------------------------------------------------------------------- ff <- agro::get_data_from_uri("hdl:11529/11111", ".") ff ## ----read--------------------------------------------------------------------- ff[1] d <- read.csv(ff[1], stringsAsFactors = FALSE) dim(d) ## ----colnames----------------------------------------------------------------- colnames(d) ## ----table-------------------------------------------------------------------- table(d$Year) ## ----y------------------------------------------------------------------------ yield <- d[, c("Yield_A", "Yield_B", "Yield_C")] head(yield) ## ----y2, error=TRUE----------------------------------------------------------- y_avg <- rowMeans(yield) ## ----y4----------------------------------------------------------------------- sapply(yield, class) ## ----y6----------------------------------------------------------------------- y <- apply(yield, 2, as.numeric) ## ----y16---------------------------------------------------------------------- na_rows <- apply(is.na(y), 1, any) table(na_rows) nas <- which(na_rows) head(nas) yield[nas[1:5], ] ## ----y20---------------------------------------------------------------------- table(d$Year, na_rows) ## ----y30---------------------------------------------------------------------- yield[yield == "-"] <- NA y <- apply(yield, 2, as.numeric) ## ----y40, error=TRUE---------------------------------------------------------- y_avg <- rowMeans(y, na.rm=TRUE) ## ----y45---------------------------------------------------------------------- d$yield <- y_avg ## ----y50---------------------------------------------------------------------- plot(sort(d$yield)) ## ----y51---------------------------------------------------------------------- tapply(d$yield, d$Year, mean, na.rm=TRUE) ## ----y55---------------------------------------------------------------------- boxplot(yield~Year, data=d) ## ----m1----------------------------------------------------------------------- ff[2] md <- read.csv(ff[2], stringsAsFactors = FALSE, header=FALSE) head(md) ## ----m11---------------------------------------------------------------------- colnames(md) <- c("var", "value") ## ----m15---------------------------------------------------------------------- i <- grep("Yield", md$var) i md$var[i] ## ----m21---------------------------------------------------------------------- md <- apply(md, 2, trimws) # apply returns a matrix, let's keep a data.frame (always with stringsAsFactors=FALSE) md <- data.frame(md, stringsAsFactors = FALSE) ## ----m31---------------------------------------------------------------------- md$value[i] ## ----m41---------------------------------------------------------------------- ymd <- gsub("Grain weight at spot .\n", "", md$value[i]) ymd <- unique(ymd) ymd ## ----m51---------------------------------------------------------------------- cat(ymd) ## ----m61---------------------------------------------------------------------- units <- data.frame(Year=2013:2016, area=c(25, 2*2.5 ,1 , 4), tokg=c(1,1,1000,1000)) units ## ----ym1---------------------------------------------------------------------- dim(d) dm <- merge(d, units, by="Year") dim(dm) ## ----ym2---------------------------------------------------------------------- head(dm[, c("Year", "yield", "area", "tokg")]) tail(dm[, c("Year", "yield", "area", "tokg")]) table(dm[, c("Year", "area")]) ## ----ym10--------------------------------------------------------------------- dm$yha <- (10000 / dm$area) * (dm$yield / dm$tokg) ## ----ym15--------------------------------------------------------------------- tapply(dm$yha, dm$Year, mean, na.rm=TRUE) ## ----ym21--------------------------------------------------------------------- dm$tokg[dm$Year==2015] <- 1 dm$yha <- (10000 / dm$area) * (dm$yield / dm$tokg) ## ----ym31--------------------------------------------------------------------- tapply(dm$yha, dm$Year, mean, na.rm=TRUE) ## ----ym41--------------------------------------------------------------------- dm$Gr_Moisture[dm$Gr_Moisture == "-"] <- NA dm$Gr_Moisture <- as.numeric(dm$Gr_Moisture) table(dm$Year, is.na(dm$Gr_Moisture)) boxplot(Gr_Moisture~Year, data=dm, col=rainbow(6), ylab="Yield (kg/ha)", cex.axis=1.25, cex.lab=1.25) ## ----ym42--------------------------------------------------------------------- moisture <- aggregate(dm[, "Gr_Moisture", drop=FALSE], dm[, "Year", drop=FALSE], mean, na.rm=TRUE) colnames(moisture)[2] <- "avg_moisture" moisture ## ----ym44--------------------------------------------------------------------- dim(dm) dm <- merge(dm, moisture, by="Year") dim(dm) ## ----ym45--------------------------------------------------------------------- i <- is.na(dm$Gr_Moisture) dm$Gr_Moisture[i] <- dm$avg_moisture[i] table(is.na(dm$Gr_Moisture)) boxplot(Gr_Moisture~Year, data=dm, col=rainbow(6), ylab="Yield (kg/ha)", cex.axis=1.25, cex.lab=1.25) ## ----------------------------------------------------------------------------- dm$yha <- 12 * dm$yha / dm$Gr_Moisture boxplot(yha~Year, data=dm, col=rainbow(6), ylab="Yield (kg/ha)", cex.axis=1.25, cex.lab=1.25) ## ----f1----------------------------------------------------------------------- fert <- c("DAP_Total", "MoP_Total", "Urea_Total", "Urea_1_Top", "MoP_1_Top", "Urea_2_Top", "MoP_2_Top", "Urea_3_Top", "MoP_3_Top") md[md$var %in% fert, ] ## ----f2----------------------------------------------------------------------- aggregate(dm[, fert], dm[,"Year",drop=FALSE], max, na.rm=TRUE) ## ----f10---------------------------------------------------------------------- i <- dm$Year %in% c(2013, 2014) sum(i) dm$Urea_Total[i] <- rowSums(dm[i, c("Urea_1_Top", "Urea_2_Top", "Urea_3_Top")]) j <- dm$Year == 2014 sum(j) dm$MoP_Total[j] <- rowSums(dm[j, c("MoP_1_Top", "MoP_2_Top", "MoP_3_Top")]) ## ----f20---------------------------------------------------------------------- df <- dm[dm$Year != 2016, ] aggregate(df[, fert[1:3]], df[,"Year",drop=FALSE], mean, na.rm=TRUE)