knitr::opts_chunk$set(echo = TRUE)
As already emphasized in Article 2, the following are the crop datasets available in ALUES:
d <- utils::data(package = "ALUES") alues_data <- d$results[, "Item"] crop_data <- regmatches(alues_data, gregexpr(paste0("^[A-Z]{2,}", collapse = "|"), alues_data)) crop_data <- unique(unlist(lapply(crop_data, function(x) substr(x, 1, nchar(x)-1)))) crop_data
In cases were the target crop is not available in the ALUES database, users can specify their own by following the template of a crop requirement dataset. For example,
library(ALUES)
COFFEEARSoil
The above dataframe shows us the first column as the code of the target factors, and the remaining of the columns are the suitability classes with the last column for the weights if any.
It should be noted that apart from the proper templating of the dataframe for any new target crop, the categorization of the characteristics must be observed as well. That is, for any new crop, the four characteristics: terrain, soil, water, and temp, must be encoded separately as one dataframe. That is, for any target crop there will be four dataframes to expect for the four characteristics mentioned.
To create a custom crop dataset, use the following code to generate an empty row dataframe with the appropriate column name
new_crop <- data.frame(matrix(nrow=0, ncol=ncol(COFFEEARSoil))) names(new_crop) <- names(COFFEEARSoil) new_crop
Needless to say, any ALUES crop dataset can be used above in place of COFFEEARSoil
, since all crop datasets have the same column names.
Next is to enter the name of the factors in the first column, and then the corresponding standard values for suitability classes. Suppose for example, the new crop demands a factor CFragm to be S3 (marginally suitable) if it is 60, S2 if it is 40, and S1 if it is 20; then this can be entered as follows:
new_crop[1, "code"] <- "CFragm" new_crop[1, 2:4] <- c(60, 40, 20) new_crop
New factors can be added further in the succeeding rows, say for row 2 we have pHH2O with the following data
new_crop[2, "code"] <- "pHH2O" new_crop[2, 2:7] <- c(4.5, 5.0, 5.1, 5.6, 6.2, 6.9) new_crop
Adding weight to pHH2O is done as follows:
new_crop[2, "wts"] <- 2 new_crop
Now suppose we want to evaluate Marinduque land units for this new crop, we can do this as follows:
newcrop_suit <- suit(new_crop, terrain=MarinduqueLT) lapply(newcrop_suit[["terrain"]], function (x) head(x))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.