我在 R 中有一个百分比变化的动物园对象。我想从 1 或 100 开始复合这些百分比变化,看看我们是否复合了膨胀/衰减。
Lines <- "obs date pctchng comgrowth
1 2010-10-04 NA 100
2 2010-10-01 .15 NA
3 2010-09-30 .14 NA
4 2010-09-29 -.05 NA
5 2010-09-28 -.12 NA
6 2010-09-27 .07 NA
7 2010-09-24 -.15 NA
8 2010-09-23 .186 NA
9 2010-09-22 .01 NA
10 2010-09-21 .03 NA
11 2010-09-20 -.03 NA"
data <- read.zoo(textConnection(Lines), header=TRUE, index=2)
startobs <- 1
for (i in 1:100) {
data[startobs+i,"comgrowth"] <- data[startobs+i-1,"comgrowth"] *
(1+data[startobs+i,"pctchng"])
}
我正在简化数据以使其易于显示,但这是我正在尝试做的想法。我意识到问题出在加/减/除/乘时。出于某种原因,我可以说data[startobs+i,"comgrowth"]=data[startobs+i-1,"comgrowth"]
,但是...
我不能说data[startobs+i,"comgrowth"]=data[startobs+i-1,"comgrowth"]+data[startobs+i-2,"comgrowth"]
。R 不会让我添加 +/-/* 等并给我这个错误
Error in NextMethod("[<-") : replacement has length zero
这是一个语法问题,纯粹而简单。有谁知道我做错了什么?