我有一个如下的大数据框,它是更大数据框的子集。
tree=data.frame(INVYR=tree$INVYR,
DIA=tree$DIA,PLOT=tree$PLOT,SPCD=tree$SPCD,
D.2=tree$D.2, BA.T=tree$BA.T)
我试图做的是计算每年每块地块的总 BAT.T(地块在随后的几年中重新测量)。我这样做是...
x<-aggregate(tree$BA.T,list(tree$INVYR,tree$PLOT),FUN=sum)
x$PLOT<-x$Group.2
x<- x[with(x, order(Group.1,Group.2)), ]
这给了我数据框...
x=data.frame(Group.1,Group.2,x,PLOT)
其中 Group.1 是 INVYR,Group.2 是地块,x 是每年每块地块的总 BA.T。到目前为止,这很好用。这是我的问题开始的地方。然后我想把它整合回我原来的树data.frame。如果我通过绘图合并数据,则由于进行了四次重新测量,它不考虑年份并将数据集四极。我无法运行 if 语句,因为数据集的长度不相等。我希望完成的 data.frame 是
tree=data.frame(INVYR, DIA, PLOT, SPCD, D.2, BA.T, x)
其中 x 是该记录的给定 INVYR 和 PLOT 的总 BA.T。
任何想法将不胜感激。谢谢。
编辑
INVYR=rbind(1982,1982,1982,1982,1982,1995,1995,1995,1995,1995,2000,2000,2000,2000,2000)
PLOT=rbind(1,1,2,2,3,1,1,2,2,3,1,1,2,2,3)
BA.T=rbind(.1,.2,.3,.4,.2,.3,.5,.8,.3,.6,.7,.2,.1,1,1.02)
tree=data.frame(INVYR,PLOT,BA.T)
head(tree)
x<-aggregate(tree$BA.T,list(tree$INVYR,tree$PLOT),FUN=sum)
x$PLOT<-x$Group.2
x$INVYR<-x$Group.1
x<- x[with(x, order(Group.1,Group.2)), ]
head(x)