Browsed by
Category: R programming

phenokio() R Package: Grain Size Analysis – Length, Width, and Area Metrics

phenokio() R Package: Grain Size Analysis – Length, Width, and Area Metrics

When analyzing grain size, we’ve used high-throughput image scanning machines. However, if we can detect grains using R code, estimating grain size becomes possible. In my previous R function, colorcapture(), we were able to detect fruit size and estimate its surface area in 2D. Recently, I developed a new R function called phenokio() specifically designed to estimate the grain area of cereals. 1. Install the function Before installing, please download Rtools (https://cran.r-project.org/bin/windows/Rtools) If the function is not able to be…

Read More Read More

Converting Rows to Columns in R: A Guide to Transposing Data (feat. pivot_wider and pivot_longer)

Converting Rows to Columns in R: A Guide to Transposing Data (feat. pivot_wider and pivot_longer)

When data is arranged, it can be structured either vertically (row-based) or horizontally (column-based). The choice depends on your preference for organizing data. However, when running statistics, data should be arranged row-based, as variables need to be in the same column. On the other hand, when calculating per variable, it is much easier to organize data column-based, allowing for simpler calculations. Regardless of the approach, well-organized data is essential, and the ability to restructure data is a valuable skill. Today,…

Read More Read More

[R package] Cook’s Distance Diagnostics and Outlier Detection (Feat. datacooks)

[R package] Cook’s Distance Diagnostics and Outlier Detection (Feat. datacooks)

In my previous post, I explained how to calculate Cook’s Distance step by step, and noted that in R you can simply use the function cooks.distance(). However, this simple function only provides the Cook’s Distance values. In my previous post, I explained the formula for Cook’s Distance step by step, including how to compute residuals, leverage, and internal studentized residuals. To make it easier to calculate these values, I recently developed an R package called datacooks(). □ datacooks() Before installing…

Read More Read More

[R package] Spatial Heatmap Visualization for Agronomic Grid-based Field Layouts Trials (Feat. agronomymap)

[R package] Spatial Heatmap Visualization for Agronomic Grid-based Field Layouts Trials (Feat. agronomymap)

When analyzing yield, we usually use bar or box plots based on the mean. However, sometimes we need to visualize the spatial variation of yield. In those cases, GIS maps are commonly used, often created with powerful software such as ArcGIS, which I have used and found to be excellent. The drawback is that ArcGIS is not free. If you want to create a simple yield map using R, it is possible, although the map quality may be slightly lower….

Read More Read More

How to analyze quadratic plateau model in R Studio?

How to analyze quadratic plateau model in R Studio?

Previous post□ How to analyze linear plateau model in R Studio? In my previous post, I explained how to analyze the linear plateau model. I simulated yield data for five different crop varieties with varying sulphur applications and suggested that the optimum sulphur application would be 23.3 kg/ha based on the linear plateau model. In this post, I’ll explain how to analyze the quadratic plateau model using the same data in R Studio. 1) Data upload If you run the…

Read More Read More

How to Set Up RStudio Server on a Linux-Based Virtual Private Server (VPS)

How to Set Up RStudio Server on a Linux-Based Virtual Private Server (VPS)

A Virtual Private Server (VPS) is a virtualized computer within a larger physical server. It acts like an independent server, offering dedicated resources and control at a lower cost than a full physical machine. VPS hosting uses this setup to give users private, customizable environments for web hosting or applications. Some reputable VPS providers include DigitalOcean, Linode, and Vultr — I currently use DigitalOcean. A Droplet in DigitalOcean is basically a virtual private server (VPS) — a self-contained Linux machine…

Read More Read More

[R package] Segment and Measure Colored Objects in Images (Feat. colorcapture)

[R package] Segment and Measure Colored Objects in Images (Feat. colorcapture)

This colorcapture() R function provides easy image analysis to estimate fruit surface area. 1. Install the pacakge Before installing colorcapture(), please download Rtools (https://cran.r-project.org/bin/windows/Rtools), and install the following package. □ colorcapture() 2. Basic code If you want to change other criteria, type ?colorcapture to see detailed information about the colorcapture() function. The default code is set to capture the yellow color. If you run the code, it will detect the yellow surface area. The frame size was 24 cm × 24 cm. and the…

Read More Read More

[R package] Segment and Measure Green Objects in Images (Feat. greencapture)

[R package] Segment and Measure Green Objects in Images (Feat. greencapture)

When measuring leaf area or fruit surface area, these have usually been measured manually, which is time-consuming and often inaccurate, especially when the shape is not perpendicular. For more reliable measurement, image analysis provides a good alternative. To facilitate this process, I developed an R function, greencapture() that captures the green area of leaves or fruits in the lab using a fixed frame. 1. Install the greencapture() package 2. Set up folders for input and output images I will save…

Read More Read More

[R package] Compute Cumulative Summaries of Grouped Data (Feat. datacume)

[R package] Compute Cumulative Summaries of Grouped Data (Feat. datacume)

When analyzing data, we sometimes need to analyze cumulative data. When calculating cumulative data, grouping is important, and it takes time to perform the grouping and calculations. To simplify this process, I developed an R package called datacume(). Let’s upload the dataset. This dataset contains biomass measurements across different treatments over time, recorded for various plants and their branches. I want to calculate the cumulative biomass over time. To do this accurately, I’ll first calculate the average biomass of the…

Read More Read More

geom_mark_ellipse

geom_mark_ellipse

https://github.com/agronomy4future/r_code/blob/main/geom_mark_ellipse.ipynb We aim to develop open-source code for agronomy ([email protected]) © 2022 – 2025 https://agronomy4future.com – All Rights Reserved. Last Updated: 19/07/2025

[R package] Quantifying Reaction Norm Plasticity from Slopes to Individual Responses (Feat. nrmodel)

[R package] Quantifying Reaction Norm Plasticity from Slopes to Individual Responses (Feat. nrmodel)

This post is part of a series introducing R packages that present methods for calculating phenotypic plasticity. □ [R package] Finlay-Wilkinson Regression model (feat. fwrmodel)□ [R package] Calculate the responsiveness of each treatment relative to a control (Feat. deltactrl)□ [R package] Quantifying Reaction Norm Plasticity from Slopes to Individual Responses (Feat. nrmodel) In my previous post, I explained how to quantify phenotypic plasticity in crops and described three different approaches: Responsiveness, Reaction Norm, and the Finlay-Wilkinson Regression Model. □ Quantifying…

Read More Read More

[Data article] Visualizing Responsiveness: Integrating Raw Data for a Holistic Dataset View

[Data article] Visualizing Responsiveness: Integrating Raw Data for a Holistic Dataset View

■ [R package] Embedding Key Descriptive Statistics within Original Data (Feat. descriptivestat) ■ [R package] Calculate the responsiveness of each treatment relative to a control (Feat. deltactrl) In my previous posts, I introduced two R packages. The first package, descriptivestat(), displays raw data along with mean values and additional descriptive statistics. The second package, deltactrl(), calculates the responsiveness of dependent variables in response to the control. Today, in this article, I will demonstrate how combining these two R packages allows…

Read More Read More

[R package] Calculate the responsiveness of each treatment relative to a control (Feat. deltactrl)

[R package] Calculate the responsiveness of each treatment relative to a control (Feat. deltactrl)

■ Quantifying Phenotypic Plasticity of Crops In my previous posts, I explained how to quantify phenotypic plasticity of crops in response to environmental factors, and introduced the concept of responsiveness, calculated using the formula: (Treatment – Control) / Control, as shown in the table below. Genotype Control Treatment Responsiveness A 100 90 -10.0% = (90-100)/100 B 120 70 -41.7% C 115 90 -21.7% D 95 85 -10.5% E 110 105 -4.5% While calculating responsiveness for a single variable is relatively…

Read More Read More

[R package] Embedding Key Descriptive Statistics within Original Data (Feat. descriptivestat)

[R package] Embedding Key Descriptive Statistics within Original Data (Feat. descriptivestat)

When analyzing data, we often need to examine descriptive statistics such as standard deviation, standard error, or the coefficient of variation (CV). These are typically summarized in a short table, but in some cases, it may be necessary to include such statistics directly in the original dataset for further analysis. Let’s upload a dataset to begin. I would like to calculate the mean, variance, standard deviation, standard error, 95% confidence interval, coefficient of variation, and the 25th percentile of yield…

Read More Read More

How to upload data from Google Drive to Google Colab in an R environment?

How to upload data from Google Drive to Google Colab in an R environment?

How to use Google Colab for Python (power tool to analyze data)? In my previous post, I introduced how to upload data from Google Drive to Google Colab in a Python environment. Google Colab is primarily Python-based, but now we can change the runtime to R and use R code in Google Colab. Today, I will introduce how to upload data from Google Drive to Google Colab in an R environment. First, let’s upload a data file to Google Drive…

Read More Read More

[R package] R-Squared Calculation in Simple Linear Regression with Zero Intercept (Feat. Intercept0)

[R package] R-Squared Calculation in Simple Linear Regression with Zero Intercept (Feat. Intercept0)

In my previous article, I suggested when forcing the intercept to zero in simple linear regression model, the existing calculation R2 = SSR / SST is incorrect. Instead, when forcing the intercept to zero, R2 should be calculated as shown below. 1 – SSE (when intercept is 0) / SST (when intercept exists) ■ R-Squared Calculation in Linear Regression with Zero Intercept This is because that only the SSE (Sum of Squared Error) is calculated as Σ(yi – ŷi)2, regardless of the presence of an…

Read More Read More

How to Upload Data from GitHub Using R and Python?

How to Upload Data from GitHub Using R and Python?

I have soybean yield data that I want to upload to Github and access from R. First, let’s upload the data to Github. The data should be in .csv format. Click Add file, choose Upload files, and, after uploading, select the Raw button to view the data in .csv format as text. and you can find the address for this data, starting with https://raw.githubusercontent.com/… Let’s copy this address. Next, I’ll bring this data into R from Github. Before that, let’s…

Read More Read More

[STAT Article] RMSE Calculation with Excel and R: A Comprehensive Guide

[STAT Article] RMSE Calculation with Excel and R: A Comprehensive Guide

When running statistical programs, you might encounter RMSE (Root Mean Square Error). For example, the table below shows RMSE values obtained from SAS, indicating that it is ca. 2.72. I’m curious about how RMSE is calculated. Below is the equation for RMSE. First, calculate the difference between the estimated and observed values: (ŷi – yi), and then square the difference: (ŷi – yi)². Second, calculate the sum of squares: Σ(ŷi – yi)². Third, divide the sum of squares by the…

Read More Read More

What is split-plot design in agronomy research?

What is split-plot design in agronomy research?

Split-plot design has been widely used particularly in the agronomy research. In split-plot design, the experimental units are divided into smaller units. Split-plot designs are useful when some factors are difficult or expensive to change or when the levels of the factors cannot be randomized (I’ll explain in detail later). Split-plot design consists of one whole plot and one subplot. The whole plot factor is randomly assigned to the experimental units, while the subplot factor is applied to a smaller…

Read More Read More

[R Package] Convert Data into Code Instantly – Save as a Script with One Line

[R Package] Convert Data into Code Instantly – Save as a Script with One Line

When uploading data to R, we sometimes worry about losing track of the data over time. This is because we save data in different folders according to various projects, and we might forget where we stored it. Additionally, if the file path changes, it can be difficult to upload the data directly and locate its current location. Therefore, a better approach is to save the data as code, allowing us to access it directly when opening the R file where…

Read More Read More

[R package] An easy way to use interpolation code to predict in-between data points

[R package] An easy way to use interpolation code to predict in-between data points

In my previous post, I explained how to calculate interpolation to predict in-between data points. ■ [Data article] Predicting Intermediate Data Points with Linear Interpolation in Excel and R To make interpolation calculations easier, particularly for groups, I recently developed a new R package, interpolate(). First, let’s upload a dataset. This dataset contains chlorophyll content measurements for sorghum and soybean. I measured chlorophyll content every 10 days between 65 and 125 days after sowing, with four replicates at each time…

Read More Read More

How to Rename Variables within Columns in R (feat. case_when() code)?

How to Rename Variables within Columns in R (feat. case_when() code)?

In my previous post, I introduced how to change variable names within columns. In the post, I provided a simple code to rename variables and also used the stringr package for renaming variables. ■ How to Rename Variables within Columns in R? Today I’ll introduce another code to simply rename variables using dplyr() package. In my previous post, using the simple data above, I introduced how to rename variables. For example, we can rename variables using the below code. Or,…

Read More Read More

How to automatically insert linear regression equation in graph in RSTUDIO?

How to automatically insert linear regression equation in graph in RSTUDIO?

Sometimes, we need to insert a linear regression equation inside a graph, but it’s an annoying to type an equation every time when generating a linear regression graph. Using stat_poly_eq(), we can automatically insert a linear regression equation. Let’s generate one data frame. Then, I’ll generate a regression graph. Now let’s analyze a linear regression. The linear model equation is y= 9.1429 + 1.5357x and R2 is 0.9245. Now I’ll insert this equation model automatically using stat_poly_eq(). I’ll add the…

Read More Read More

Practices in Data Normalization using normtools() in R

Practices in Data Normalization using normtools() in R

■ [R package] Normalization Methods for Data Scaling (Feat. normtools) In my previous post, I introduced the R package normtools(), which I developed to normalize data using various methods. This time, I’ll demonstrate how to use the R package normtools() for data normalization. 1. Data upload This data includes kernel number (KN), average kernel weight (AGW), and grain yield (GY) for different corn varieties across various years, populations, and locations. 2. Data normalization This is the normtools() package. First, I’ll…

Read More Read More

[R package] Normalization Methods for Data Scaling (Feat. normtools)

[R package] Normalization Methods for Data Scaling (Feat. normtools)

■ [Data article] Data Normalization Techniques: Excel and R as the Initial Steps in Machine Learning In my previous post, I explained how to normalize data using various methods and demonstrated how to perform the calculations for each method. To simplify these calculations, I recently developed an R package that easily generates normalized data. 1. Install the normtools() package 2. Basic code format 3. Practice with actual dataset (data upload) 4. Normalize data 4.1. Z-test normalization 4.2. Robust Scaling 4.3….

Read More Read More

R GIS: Interpolating and Plotting Corn Grain Yield Data

R GIS: Interpolating and Plotting Corn Grain Yield Data

■ Python GIS: Interpolating and Plotting Corn Grain Yield Data In my previous post, I explained how to create a GIS map using Python. Today, I’ll introduce how to create the same GIS map using R. First, let’s install all the required packages. and I’ll upload a dataset for practice. Next, I’ll extract columns for latitude, longitude, and y (output) and I’ll interpolate data Finally, I’ll create a GIS map using ggplot(). Full code If you copy and paste the…

Read More Read More

Graphing Normal Distributions with Varied Variances

Graphing Normal Distributions with Varied Variances

I want to create a normal distribution graph with a specific variance. First, it’s necessary to create the data. I’ll generate data with a mean of 100 and a variance of 100 (which means the standard deviation is 10). However, it’s important to establish a range. To do this, I’ll set up a range of 6σ, and the dataset will contain 1,000 rows. and I’ll create a normal distribution graph. These are graphs with different variances, ranging from 1σ to…

Read More Read More