次のような大きなデータ フレームがあります。これは、より大きなデータ フレームのサブセットです。
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)
私がやろうとしているのは、年間のプロットごとの合計 BA.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 は PLOT、x はプロットごとの年間合計 BA.T です。これまでのところ、これはうまく機能します。ここから私の問題が始まります。次に、これを元のツリー data.frame に統合します。プロットごとにデータをマージすると、年は考慮されず、4 回の再測定のためにデータセットが四重極になります。データ セットの長さが等しくないため、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)