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

R语言:筛选costat为I的企业最后观测并按年统计dlrsn频次

解决方案

任务1:筛选costat为“I”的企业的最后一条观测

Python(Pandas)实现

import pandas as pd

# 假设数据存储在名为df的DataFrame中
# 先筛选costat为"I"的记录,按企业ID和年份排序(确保最后一条是最新年份)
filtered_data = df[df['costat'] == 'I'].sort_values(by=['gvkey', 'year'])
# 按gvkey分组,提取每组最后一行
last_observations = filtered_data.groupby('gvkey').tail(1)

如果数据已经按year升序排列,可以跳过sort_values步骤。

R(dplyr)实现

library(dplyr)

# 假设数据存储在名为df的数据框中
last_observations <- df %>%
  filter(costat == "I") %>%
  arrange(gvkey, year) %>% # 按企业ID和年份排序
  group_by(gvkey) %>%
  slice_tail(n = 1) %>% # 取每组最后一条记录
  ungroup()

任务2:按year统计dlrsn各数值每年出现的次数

Python(Pandas)实现

# 按年份和dlrsn值分组计数,转为宽表展示(每年各dlrsn的次数)
yearly_dlrsn_counts = df.groupby(['year', 'dlrsn']).size().unstack(fill_value=0)

如果需要长表格式(每行是某一年的某个dlrsn值及其次数),去掉unstack(fill_value=0)即可。

R(dplyr)实现

library(dplyr)
library(tidyr)

# 按年份和dlrsn值计数,转为宽表展示
yearly_dlrsn_counts <- df %>%
  count(year, dlrsn) %>%
  pivot_wider(names_from = dlrsn, values_from = n, values_fill = 0)

同样,若需要长表格式,只保留count(year, dlrsn)的结果即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 19:55:51