[STAT Article] Statistical Models in Agrivoltaics: Linear Mixed Models Across Different Field Layouts

[STAT Article] Statistical Models in Agrivoltaics: Linear Mixed Models Across Different Field Layouts

Agrivoltaics is the study and practice of combining agriculture and solar energy production on the same land. The core idea is to install solar panels above or among crops, allowing for simultaneous food and energy production. Generally, an agrivoltaics study investigates how this dual-use approach affects crop growth and yield (due to changes in light, temperature, and moisture), microclimate conditions under the panels, solar panel efficiency influenced by vegetation, as well as land-use efficiency, economic outcomes, and sustainability metrics. Today,…

Read More Read More

[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

[STAT Article] How to calculate reaction norm in crop physiology?

[STAT Article] How to calculate reaction norm in crop physiology?

□ Quantifying Phenotypic Plasticity of Crops In my previous post, I explained how to quantify phenotypic plasticity in crops and described three different approaches: 1) Responsiveness, 2) Reaction Norm, and the 3) Finlay-Wilkinson Regression Model. Responsiveness is calculated as (Treatment − Control) / Control. It indicates how the dependent variable (e.g., yield) responds to a given treatment relative to the control. The responsiveness value can range from −1 (complete reduction) to values greater than 0, depending on the magnitude of…

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

Amblyseius swirskii – Predatory Mite

Amblyseius swirskii – Predatory Mite

Amblyseius swirskii (commonly called Swirski mite) is a species of mite that feeds on a wide variety of economically important pests including mites, thrips, psyllids, and whiteflies. This article focuses on the use of this predator in outdoor environments. https://cals.cornell.edu/integrated-pest-management/outreach-education/fact-sheets/amblyseius-swirskii-predatory-mite

The New York Night scene from the Airplane

The New York Night scene from the Airplane

I just returned to Ithaca from LA via JFK Airport. The weather in LA was beautiful, and I had a great time in California. This is a view of the New York night scene from the airplane. We aim to develop open-source code for agronomy ([email protected]) © 2022 – 2025 https://agronomy4future.com – All Rights Reserved. Last Updated: 26/05/2025

pepper flowering initiated

pepper flowering initiated

Flowering in pepper (Capsicum spp.) marks a critical transition from vegetative to reproductive growth, significantly influencing fruit set and yield. The flowering process is complex and regulated by genetic, environmental, and physiological factors. In our greenhouse, peppers initiated flowering 58 days after planting. They were planted on 24 March 2025, and flowering began on 21 May 2025. We aim to develop open-source code for agronomy ([email protected]) © 2022 – 2025 https://agronomy4future.com – All Rights Reserved. Last Updated: 21/05/2025

[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

[Data article] Simulating Crop Growth Over Time Using a Sigmoid Growth Model

[Data article] Simulating Crop Growth Over Time Using a Sigmoid Growth Model

I’m planning to frequently collect biomass samples to observe how biomass accumulation differs among treatments or varieties over time. I assume that the growth will follow a curve pattern, characterized by slow accumulation during the early growing stage, followed by rapid growth, and eventually reaching a plateau. I want to visualize this curve through simulation, and here is the Python code to demonstrate it. First, let’s import the required packages. and I’ll also set up a seed for reproducibility. Next,…

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

[Data article] Predicting Intermediate Data Points with Linear Interpolation in Excel and R

[Data article] Predicting Intermediate Data Points with Linear Interpolation in Excel and R

Today, I’ll explain the interpolation technique used to predict in-between data points. For example, when collecting field data, we might not be able to gather information every day, so we establish our own interval (e.g., weekly or bi-weekly). However, when presenting the data, it might be necessary to show it on a daily basis. As another example, consider investigating yield differences in response to varying continuous variables, such as nitrogen at levels of 0, 30, 60, 120. What if we…

Read More Read More

How to Combine Files and Create a New Data Table in MySQL

How to Combine Files and Create a New Data Table in MySQL

In my previous post, I introduced how to combine multiple files into one using Access, and now I’ll explain how to do the same using MySQL. The SQL code is similar in both programs, so the code will be the same. First, I uploaded three different datasets to MySQL, and I want to combine them into one. I’ll use union code to combine all data. Now I want to create this data table. So, I’ll use this code. Now, new…

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 convert to a .json file using Python?

How to convert to a .json file using Python?

Sometimes we need to convert our data to .json format, and I will introduce an easy way to do it using Python. I will use Google Colab. First, let’s mount Google Drive to Google Colab. Second, let’s upload a dataset from GitHub. I’ll convert this data to a .json file and download it to my PC. or I can directly download it to Google Colab. Now .json file is created. Let’s upload this .json file to Google Colab. When uploading…

Read More Read More

How to Use Temporary Tables for Quick Calculations in MySQL?

How to Use Temporary Tables for Quick Calculations in MySQL?

In my SQL, sometimes we need to calculate average or something else for filtered data. It woud be much easiler if we create temporary tables when calculating filtered data. here is an example. First, let’s create a database Second, I’ll create a data table. Let’s see the data table was well created. Now, I want to calculate average for root and total biomass per treatment. Next, I want to calculate average again, but excluding treatment, N3. So, I’ll run this…

Read More Read More

Visualizing Geospatial Data with Folium in Python

Visualizing Geospatial Data with Folium in Python

Recently, I saw the QS World University Rankings; QS World University Rankings by Subject 2024: Agriculture & Forestry. It shows the global university rankings for Agriculture and Forestry Science. Suddenly, I became interested in marking the U.S. agriculture universities on a map to see where these colleges are located in the U.S. I found that the Folium package in Python provides an excellent GIS map with an easy process, and I am sharing the code here. First, using Python, I’ll…

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

[Article] Tiny Plants Reveal Big Potential for Boosting Crop Efficiency – Boyce Thompson Institute – Boyce Thompson Institute

[Article] Tiny Plants Reveal Big Potential for Boosting Crop Efficiency – Boyce Thompson Institute – Boyce Thompson Institute

Scientists have long sought ways to help plants turn more carbon dioxide (CO₂) into biomass, which could boost crop yields and even combat climate change. Recent research suggests that a group of unique, often overlooked plants called hornworts may hold the key. “Hornworts possess a remarkable ability that is unique among land plants: they have a natural turbocharger for photosynthesis,” said Tanner Robison, a graduate student at the Boyce Thompson Institute (BTI) and first author of the paper recently published in Nature Plants….

Read More Read More

[슬기로운 코넬 생활 101] 한국에서 이타카 (Ithaca) 가는 방법

[슬기로운 코넬 생활 101] 한국에서 이타카 (Ithaca) 가는 방법

“슬기로운 코넬 생활 101” 은 제가 초기 정착 때 경험한 것들을 시간별로 정리해서 새롭게 오시는 분들에게 필요한 정보를 공유하는 것을 목적으로 하는 프로젝트 입니다. 참고로 “슬기로운 어바나-샴페인 생활 101” 프로젝트는 성공적이었으며 어바나-샴페인으로 새롭게 오시는 분들에게 다양한 로컬 정보를 제공했었습니다 (e.g., 한국에서 어바나-샴페인 (Urbana-Champaign) 가는 방법) 목차1. [슬기로운 코넬 생활 101] 한국에서 이타카 (Ithaca) 가는 방법 일리노이 대학 (University of Illinois at Urbana-Champaign) 연구그룹에서 마무리를 잘 하고 이타카 (Ithaca) 로 잘 이동했습니다. 필드 작물 연구가 활발한 Midwest 지역에서 약간은 필드 작물…

Read More Read More

[STAT Article] Steps to Calculate Log-Likelihood Prior to AIC and BIC: [Part 2] ANOVA model

[STAT Article] Steps to Calculate Log-Likelihood Prior to AIC and BIC: [Part 2] ANOVA model

In my previous post, I explained how to calculate the Log-Likelihood, AIC, and BIC in a regression model. In this post, I will demonstrate the same concepts, but in the context of an ANOVA model. Here I have one dataset. Let’s say this data represents yield in response to different fertilizer types (Control, Slow, and Fast), and I want to determine the effect of fertilizer type on yield. Therefore, I will perform a one-way ANOVA. Now, I observe that the…

Read More Read More

2024 ASA, CSSA, SSSA International Annual Meeting in San Antonio, TX

2024 ASA, CSSA, SSSA International Annual Meeting in San Antonio, TX

I went to San Antonio to attend the ASA, CSSA, SSSA International Annual Meeting. It was my first time to visit Texas, and the weather was great!! I had an oral presentation about my agrivoltaics study I’d conducted for the last two seasons. The title was ‘Shading Impacts on Sorghum and Soybean Grain Yields Under Agrivoltaics Systems: Source-Sink Strength in Response to Shading.’ Agrivoltaic (AV) systems induce shading throughout the entire crop growth period, and understanding how these shading patterns…

Read More Read More