【发布时间】:2021-11-27 13:32:25
【问题描述】:
我需要编写一个 for 循环来计算年份变量(例如 var1874)* 价格变量(例如 num1874)的乘积,为每年创建一个新变量及其对应的价格值(例如 newvar1874)。
这是我在 R 中的数据
A tibble: 4 x 7
cty var1874 var1875 var1876 num1874 num1875 num1876
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 0.78 0.83 0.99 2.64 2.8 3.1
2 2 0.69 0.69 0.89 2.3 2.3 2.58
3 3 0.42 0.48 0.59 2.28 2.44 2.64
4 4 0.82 0.94 1.09 2.28 2.36 3
我已经能够使用 Stata 中的“foreach”循环来做到这一点:
local vn 1874 1875 1876
foreach v of local vn {
gen newvar'v' = var'v'*num'v'
有谁知道我将如何使用 R 中的 for 循环执行相同类型的命令?我知道在没有 for 循环的情况下可能有更简单的方法可以做到这一点,但我需要知道如何使用 for 循环来做到这一点。
【问题讨论】:
-
不是问题,但这种数据布局在 Stata 中并不好。每年的单独列(变量)只会让用户进行不必要的循环。
-
无论使用 Stata 还是 R,将数据重新整形为更长的形式会更容易,
newvar = var*num无需循环。