wanthe的个人博客分享 http://blog.sciencenet.cn/u/wanthe

博文

开花物候数据转化的小程序,R软件

已有 2866 次阅读 2016-12-18 11:22 |个人分类:科研日记|系统分类:科研笔记| 转换, Flower, 数据格式

例子:


原始数据:

种群编号

植株编号

始花期

(日期格式)

终花期

(日期格式)

始花期

(Excel常规格式)

终花期

(Excel常规格式)

Pop1

1

2016/1/1

2016/1/3

42370

42372

Pop1

2

2016/1/5

2016/1/7

42374

42376

Pop1

3

2016/1/9

2016/1/11

42378

42380

Pop1

4

2016/1/13

2016/1/15

42382

42384

Pop1

5

2016/1/17

2016/1/19

42386

42388

Pop1

6

2016/1/4

42373

Pop2

1

2016/1/9

2016/1/13

42378

42382

Pop2

2

2016/1/10

2016/1/11

42379

42380

Pop2

3

2016/1/11

2016/1/20

42380

42389

Pop2

4

2016/1/7

2016/1/13

42376

42382

Pop2

5

2016/1/13

2016/1/21

42382

42390

Pop2

6

2016/1/13

42382

Pop3

1

2016/1/20

2016/2/5

42389

42405

Pop3

2

2016/1/20

2016/2/5

42389

42405

Pop3

3

2016/1/20

2016/2/5

42389

42405

Pop3

4

2016/1/20

2016/2/5

42389

42405

Pop3

5

2016/1/20

2016/2/5

42389

42405

Pop3

6


R运算前后数据的转换效果:




(A)转换前

(B)转换后




转换方法:

首先,在excel中将“日期”格式的原始修改为“常规”格式,然后根据下表中的计算方法进行数据转化。

D0=read.csv("C:/Users/admin/Desktop/data.csv");D0  #导入数据

D=na.omit(D0); D #删除具有缺失值的行

#准备基本的参数

n=length(D[,1]);n #确定行数

m1=min(D[,3:4]);m1 #找到数据中第一朵花开放的时间

m2=max(D[,3:4]);m2 #找到数据中最后一朵花凋落2的时间

m=m2-m1+1;m #确定总的花期

RR=matrix(m1:m2,n,m,byrow=TRUE) #设置无效矩阵,即参数dd的整体框架

colnames(RR)=m1:m2 #将常规格式的值作为列名称

#利用循环语句填充参数dd的数据,如果当有花朵盛开用1表示,无花朵则用0表示

for  (i in 1:n) {

 for (j in 1:m) {

   if((RR[i,j]>=D[i,3])&(RR[i,j]<=D[i,4]))

     RR[i,j]=1

   else

     RR[i,j]=0

   end

 }

}

##得到计算所需的三个主要参数dd、pop和ind

dd=RR

pop=D$pop

ind=D$ind









https://blog.sciencenet.cn/blog-282290-1021483.html

上一篇:CiteScore查询地址&soil检索结果
下一篇:植物研究的利器:LEAFAREAS1.0 发布。。。
收藏 IP: 125.70.31.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-12 17:48

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部