# 代码注解:
# 首先加载程序包,若程序包加载失败表示R未安装该程序包。请运行"#"之后代码。
# 生理发育时间从播种那天开始计算
# RET表示相对热效应,PDT表示生理发育时间。
# tb 作物生长发育下限温度
# to 作物生长发育最适温度
# tm 作物生长发育上限温度
#RET = 0               t<tb;
# RET = (t-tb)/(to-tb) tb<=t<=to;
# RET = (tm-t)/(tm-to) to<t<=tm
# RET = 0              t>tm;
# RET=0.5*RET_av+0.25*RET_max+0.25*RET_min
# TT表示有效积温  ,年份='2020'
rm(list = ls())#该代码含义是清除历史记录相当于格式化
library(rio)
#install.packages('rio')
library(tidyverse)
# install.packages("tidyverse")
library(openxlsx)
ret <- import('生理发育.xlsx') %>%
  rename(tmin='最低气温',
         tmax='最高气温',
         tav='平均气温') %>% filter(年=='2020')
  #rename()函数修改列名
View(ret)
head(ret)

tb <- 12
to <- 30
tm <- 35
t_o <- 25

n <- ret$年
# d<- as.Date('2020-4-24')-as.Date('2020-1-1')+1
d<- as.Date('2020-4-24')-as.Date('2020-1-1')#4-24表示播种时间
d
ret%>% mutate(doy=1:length(n),
              DAS=ifelse(doy>=d,(doy-d),0))->rett
# %>% filter(doy>=d)->ret
view(rett)
# 设定温度三基点
# tb 作物生长发育下限温度
# to 作物生长发育最适温度(设置了25℃、30℃)
# tm 作物生长发育上限温度
t <- ret$tav
t_1 <- ret$tmax
t_2 <- ret$tmin
 ret %>% mutate(RET_av=(ifelse(t<12,0,
                          ifelse(12<=t&t<=30,(t-tb)/(to-tb),
                                 ifelse(30<=t&t<=35,(tm-t)/(tm-to),
                                        ifelse(t>35,0,0))))),
              RET_max=(ifelse(t_1<12,0,
                              ifelse(12<=t_1&t_1<=30,(t_1-tb)/(to-tb),
                                     ifelse(30<=t_1&t_1<=35,(tm-t_1)/(tm-to),
                                            ifelse(t_1>35,0,0))))),
              RET_min=(ifelse(t_2<12,0,
                              ifelse(12<=t_2&t_2<=30,(t_2-tb)/(to-tb),
                                     ifelse(30<=t_2&t_2<=35,(tm-t_2)/(tm-to),
                                            ifelse(t_2>35,0,0))))),
              RET_30=0.5*RET_av+0.25*RET_max+0.25*RET_min,
              PDT_30=cumsum(RET_30),
             RET_a_v=(ifelse(t<12,0,
                             ifelse(12<=t&t<=25,(t-tb)/(t_o-tb),
                                    ifelse(25<=t&t<=35,(tm-t)/(tm-t_o),
                                           ifelse(t>35,0,0))))),
             RET_m_ax=(ifelse(t_1<12,0,
                              ifelse(12<=t_1&t_1<=25,(t_1-tb)/(t_o-tb),
                                     ifelse(25<=t_1&t_1<=35,(tm-t_1)/(tm-t_o),
                                            ifelse(t_1>35,0,0))))),
             RET_m_in=(ifelse(t_2<12,0,
                              ifelse(12<=t_2&t_2<=25,(t_2-tb)/(t_o-tb),
                                     ifelse(25<=t_2&t_2<=35,(tm-t_2)/(tm-t_o),
                                            ifelse(t_2>35,0,0))))),
             RET_25=0.5*RET_a_v+0.25*RET_m_ax+0.25*RET_m_in,
             PDT_25=cumsum(RET_25),
              TT=cumsum(ifelse(t>12,(t-tb),0))) %>% rename('平均气温'=tav,
                '最低气温'=tmin,
                '最高气温'=tmax) %>% select(-RET_max,
                                        -RET_av,
                                        -RET_min,
                                        -RET_25,-RET_30,-RET_a_v,
                                        -RET_m_ax,-RET_m_in)  -> ret_1

view(ret_1)#查看计算结果
export(ret_1,'生理发育时间.xlsx')#保存数据

R语言计算生理发育时间、有效积温相关推荐

  1. r语言 计算模型的rmse_直播丨R语言与作物模型高级应用实战技术应用

    随着基于过程的作物生长模型(Process-based Crop Growth Simulation Model)的发展,R语言在作物生长模型和数据分析.挖掘和可视化中发挥着越来越重要的作用.想要成为 ...

  2. R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

    原文链接:http://tecdat.cn/?p=22588 今天我们将计算投资组合收益的CAPM贝塔.这需要拟合一个线性模型,得到可视化,从资产收益的角度考虑我们的结果的意义. 简单的背景介绍,资本 ...

  3. R语言计算曼哈顿距离(Manhattan Distance)实战:计算两个向量的曼哈顿距离、dist函数计算矩阵中两两元素的曼哈顿距离

    R语言计算曼哈顿距离(Manhattan Distance)实战:计算两个向量的曼哈顿距离.dist函数计算矩阵中两两元素的曼哈顿距离 目录 R语言计算曼哈顿距离(Manhattan Distance ...

  4. R语言计算杰卡德相似系数(Jaccard Similarity)实战:自定义函数计算Jaccard相似度、对字符串向量计算Jaccard相似度、将Jaccard相似度转化为Jaccard距离

    R语言计算杰卡德相似系数(Jaccard Similarity)实战:自定义函数计算Jaccard相似度.对字符串向量计算Jaccard相似度.将Jaccard相似度转化为Jaccard距离 目录 R ...

  5. R语言计算平均值的标准误差(standard error of the mean):自定义函数计算平均值的标准误差、使用plotrix包的std.error函数计算平均值的标准误差

    R语言计算平均值的标准误差(standard error of the mean):自定义函数计算平均值的标准误差.使用plotrix包的std.error函数计算平均值的标准误差 目录

  6. R语言计算回归模型每个样本(观察、observation、sample)的DFFITS度量实战:忽略单个观察(样本)时,回归模型所做的预测会发生多大的变化

    R语言计算回归模型每个样本(观察.observation.sample)的DFFITS度量实战:忽略单个观察(样本)时,回归模型所做的预测会发生多大的变化 目录

  7. R语言计算回归模型每个样本(观察、observation、sample)的杠杆值(leverage)实战:如果一个样本的预测变量比其他样本的预测变量值更极端,那么被认为具有很高的杠杆作用

    R语言计算回归模型每个样本(观察.observation.sample)的杠杆值(leverage)实战:如果一个样本的预测变量比其他样本的预测变量值更极端,那么被认为具有很高的杠杆作用 目录

  8. R语言计算每个分组的行数并将结果添加到dataframe中实战

    R语言计算每个分组的行数并将结果添加到dataframe中实战 目录 R语言计算每个分组的行数并将结果添加到dataframe中实战 #仿真数据

  9. R语言计算F1评估指标实战:F1 score、使用R中caret包中的confusionMatrix()函数为给定的logistic回归模型计算F1得分(和其他指标)

    R语言计算F1评估指标实战:F1 score.使用R中caret包中的confusionMatrix()函数为给定的logistic回归模型计算F1得分(和其他指标) 目录

最新文章

  1. html给图片做绝对定位,有关绝对定位的全面理解
  2. 软件开发管理的十大工作任务(FROM 栾跃)
  3. 我对CTO的理解 CTO要有技术魅力
  4. scikit-learn系列之如何存储和导入机器学习模型
  5. C#反射调用 异常信息:Ambiguous match found.
  6. MongoDB管理:慎用local、admin数据库
  7. Boost字符串处理
  8. BugkuCTF-WEB题程序员本地网站
  9. 计算机中专专业是什么意思,计算机专业的中专与大专有什么不同?
  10. HTML离线缓存( applicationCache)
  11. 运行时修改Standard shader的Mode
  12. SpringBoot基础教程2-1-6 日志规范-使用AOP统一处理Web日志
  13. 【python】正则表达式re模块
  14. poi向word插入图片_【工作应用】Java根据word模板动态生成word文档(SpringBoot项目)...
  15. 蓝桥杯题目练习(加法运算)
  16. SpringBoot整合MybatisPlus实现逻辑删除
  17. python实现华氏温度和摄氏温度转换
  18. 树形导航栏(折叠)(jquery)
  19. oracle sequences优化_Oracle 优化和性能调整
  20. 计算机应用技术专业课程视频,微视频技术在计算机专业课程教学中的应用研究...

热门文章

  1. 安卓手机adb使用技巧-p40
  2. 浅谈什么是图拓扑排序
  3. java删除数据库表格,《Java:数据库更新excel文件的数据同时删除数据库原来的数据》 excel表格如何删除相同数据库...
  4. 自有品牌营收增长强但亏损再现 华米科技“去小米化”之路任重道远
  5. SDUT ACM 4078 女装大佬买地
  6. 微服务项⽬整合SwaggerUI3.0
  7. 6.23(343,96)
  8. 基于Faster-rcnn的安全帽检测(使用Colab进行训练)
  9. 跟领导提离职了,现在后悔,想留下来,怎么办?
  10. 为什么这几年钱越来越难赚了?而有的人完全不受影响?