我正在分析植物生物量/雨水利用效率的时间序列数据。我有一个包含响应变量和几个因子(放牧强度)的数据集,以及每个因子的重复数据(4个因子,5或7个重复数据)。 我需要从包含1981年到2007年的年度数据的每个单独数据集中创建时间序列对象。在这段时间内,我对不同地块进行了24次单独评估。
我试图为此编写一个循环,但失败了。
数据集称为dat。 PMR6yrs是响应变量。 ID是复制的ID。 它最终以某种方式仅返回一个ts对象,因此我认为问题在于存储它们。
到目前为止,我尝试过的是:
tsPMR<- NULL
for (i in 1:24) {
tsPMR6<- ts(dat$PMR_6yrs[dat$ID == i],
start = c(1981), end = c(2007), frequency = 1)
ts<-rbind(tsPMR, tsPMR6)
}
有人可以协助吗?谢谢sm
答案 0 :(得分:0)
很难看到代码中的问题(通常很高兴有数据,以便我们重现该问题)。但是您不需要绑定到对象tsPMR
<div style="display:flex;justify-content:space-between;">
<div style="display:inline-block;"><!-- this will contain single column-->
<div style="position:fixed;top:0px;left:0px;">
Col1
</div>
您还可以在循环中添加一个assign语句-该语句将为循环的每次迭代创建24个不同的对象
tsPMR<- NULL
for (i in 1:24) {
tsPMR6<- ts(dat$PMR_6yrs[dat$ID == i],
start = c(1981), end = c(2007), frequency = 1)
tsPMR<-rbind(tsPMR, tsPMR6)
}
print( tsPMR )
@nicola-是的,您应该避免分配。对循环进行的修改应该可以解决您的rbind问题