【发布时间】:2015-11-08 13:44:36
【问题描述】:
我正在尝试使用 r 计算每个工人的资本 (k)。 我们使用的是真实数据,所以我使用的是基于 .csv 文件的日期而不是 t。 日期已正确加载为
> date[1]
[1] "2009/07/01"
> date[3]
[1] "2011/07/01"
但是这部分似乎对我不起作用
for (date in 2:7){
y[date] <- k[date-1]^alpha
k[date] <- (1-delta-n[date])*k[date-1]+s*y[date]
}
完整代码在这里:
```{r}
labour <- read_csv("LF.csv")
date <- labour$date
# Defining parameters
alpha <- .4 #After several hours discussion with Pardy
n <- labour$growth
delta <- 0.041
g <- 0.016
s <- 0.274
k <- rep(NA, 7)
y <- rep(NA, 7)
kappa <- (s/(n[1] + delta))^(1/(1-alpha))
k[1] <- kappa
y[1] <- k[1]^alpha
for (date in 2:7){
y[date] <- k[date-1]^alpha
k[date] <- (1-delta-n[date])*k[date-1]+s*y[date]
}
data.frame(date = date[1:7], k ) %>% melt(id = "date") %>%
ggplot(aes(x = date, y = value, colour = variable,group = 1)) +
geom_line() +
ylim(0, 18)
```
【问题讨论】:
-
你的意思是
for (eachdate in date[2:7])?现在,您在该循环中使用的每个日期只有 2、3、4、5、6 或 7 -
是的,这就是我想要的。我正在尝试使用 date[1],date[2] 等代替 t 将 k 和 y 链接到 [date]
-
您应该为该循环变量使用一个新名称 - 它正在覆盖您的向量
date。