如何在R中将财年列转换为连续型数据?
处理财年列转换为非离散数据的简便方法
方法1:提取起始年份转为数值型
直接截取财年字符串的前4位并转换为数值,这样每个财年对应一个连续的起始年份值,完全满足直方图的绘制需求:
# 假设数据框为df,财年列名为fy library(dplyr) df <- df %>% mutate(fy_numeric = as.numeric(substr(fy, 1, 4)))
方法2:转换为财年中点日期(体现时间跨度)
如果需要体现财年的时间区间,可以将财年转换为区间中点的日期类型(日期属于连续数据),示例以财年中点为当年9月30日为例(可根据实际财年周期调整日期):
df <- df %>% mutate(fy_mid_date = as.Date(paste0(substr(fy, 1, 4), "-09-30")))
方法3:拆分后生成连续值(解决拆分后合并问题)
如果已经拆分出起始和结束年份,可以通过计算平均值或直接使用起始年份生成连续列:
# 先拆分财年列(如果还没拆分) df <- df %>% separate(fy, into = c("start_year", "end_year_short"), sep = "/") %>% # 将两位的结束年份转为四位 mutate(end_year = as.numeric(paste0("20", end_year_short)), # 生成起始年份数值 fy_start = as.numeric(start_year), # 生成财年平均年份 fy_avg = (as.numeric(start_year) + end_year)/2)
内容的提问来源于stack exchange,提问作者Alea
相关产品推荐
相关产品推荐

