You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R面板数据处理:基于投资年份创建t+2期专利申请量衍生变量

实现方法说明

原代码错误原因

你的代码存在两个核心问题:

  • 变量名大小写不匹配:你代码中使用的Year、Investment_Year和数据集中的实际变量名year、investment_year不一致,第一步就无法正确匹配到对应列
  • 没有按企业分组匹配:你直接提取的满足year == investment_year + 2的专利申请量向量长度远小于原数据框行数,赋值时R会自动循环填充向量,导致值和企业无法对应

正确实现方式

方法1:使用dplyr(推荐,面板数据操作更简洁)

通过分组匹配每个企业对应的t+2期专利值:

library(dplyr)

df <- df %>%
  # 按企业名称分组
  group_by(company_name) %>%
  # 分组内匹配投资年+2对应的专利申请量
  mutate(patent_applications_t2 = patent_applications[year == investment_year + 2]) %>%
  # 取消分组
  ungroup()

方法2:基础R实现(无需加载第三方包)

使用ave函数完成分组匹配:

df$patent_applications_t2 <- ave(
  1:nrow(df),
  df$company_name,
  FUN = function(idx) {
    sub <- df[idx, ]
    sub$patent_applications[sub$year == sub$investment_year + 2]
  }
)

注意事项

如果部分企业的投资年份+2不在2012-2020的观测区间内,生成的patent_applications_t2会自动返回NA,属于正常的缺失值情况。

内容的提问来源于stack exchange,提问作者NeuroticJet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 12:15:03