Stata循环语法转R:用for循环实现年度配对变量乘积计算
实现代码
首先将你的tibble数据命名为df,运行以下代码即可实现需求:
# 声明需要遍历的年份 years <- c(1874, 1875, 1876) # for循环计算每一年的新变量 for (year in years) { # 拼接得到对应年份的var、num列名,以及新生成的newvar列名 var_name <- paste0("var", year) num_name <- paste0("num", year) new_name <- paste0("newvar", year) # 对应列相乘赋值给新列 df[[new_name]] <- df[[var_name]] * df[[num_name]] }
代码说明
- 用
paste0()拼接字符串生成动态列名,逻辑和Stata中拼接var'v'的宏语法一致 - R中通过
[[列名]]的语法可以动态读取或赋值数据框/ tibble的列,适合循环场景下的变量操作
内容的提问来源于stack exchange,提问作者B.Nin
相关产品推荐
相关产品推荐

