![dcdbba999dc8a5efb3af91cf1137076f.png](https://img-blog.csdnimg.cn/img_convert/dcdbba999dc8a5efb3af91cf1137076f.png)
作为一个R语言的忠实粉丝,一直觉得这个软件非常好用,直到有一天晚上。。。
我想在一张表格里生成一组含有参数的变量,
###### step1 生成一张表格,作为演示样本 #####
tb <- tibble(
year = rep(2001:2020,10) #2001到2020共20个年份,重复10次
)
tb %<>% arrange(year) %>%
mutate(
id = rep(1:10,20), #10个id表示10个企业
r1 = rnorm(200, mean = 0, sd = 1), #正态分布随机数
r2 = rnorm(200, mean = 1, sd = 1),
r3 = rnorm(200, mean = 2, sd = 1)
)
# 现在我们有了一张表格,关键字是year和id,并且有一个值是r
tb %>% count(year,id) %>% filter(n > 1) #验证关键字
##### step2 需求:按年份和r的值生成一组含参数的变量,比如下面这样 #####
# T_i = r1*(year = 2004 + i) +
# r2*(year = 2007 + i) +
# r3*(year = 2009 + i) #这里化用了多时点DID的平行趋势检
机智的我当然一下子就想到用for循环啦~~~
But ,
这个变量名它怎么包含参数啊啊啊???
![50caa28ac45dd8c6a7305c492cd439f2.png](https://img-blog.csdnimg.cn/img_convert/50caa28ac45dd8c6a7305c492cd439f2.png)
如果直接写for循环的话,它就会变成这样
##### step3 使用for循环 #####
for (i in 0:5) {
tb %<>% mutate(
T_i = r1*(year = 2004 + i) +
r2*(year = 2007 + i) +
r3*(year = 2009 + i)
)
}
#查看生成的字段名
colnames(tb)
[1] "year" "id" "r1" "r2" "r3" "T_i"
真的生成了"T_i" ,字面意义上的