如何基于Zajci地区PM10月度数据创建2017年5月前后的虚拟变量
解决虚拟变量创建问题
你的代码在处理yearmonth类型的索引时,使用mdy()转换属于多余操作且会引发错误。直接利用yearmonth类型的比较特性就能快速创建符合需求的虚拟变量,以下是修正后的代码:
# 读取并处理数据(保留原有步骤) ZAQ <- read_excel("rmit/FQA/ZAQ.xlsx", col_types = c("date", "numeric", "numeric")) ZAQ <- ZAQ |> mutate(date = date(Day)) |> mutate(month = yearmonth(Day)) |> mutate(year = year(Day)) ZAQ1 <- aggregate(Pm10 ~ month + year, ZAQ, mean) ZAQ2 <- as_tsibble(ZAQ1, index = month) # 创建虚拟变量:2017年5月之前取值为0,之后取值为1 # 若需将2017年5月归为0,只需把>=替换为> ZAQ2 <- ZAQ2 |> mutate(data_trat = as.numeric(month >= yearmonth("2017-05")))
关键说明:
yearmonth("2017-05")生成与数据中month列类型一致的年月索引,可直接用于比较- 逻辑表达式
month >= yearmonth("2017-05")返回TRUE/FALSE,通过as.numeric()转换后即可得到1/0格式的虚拟变量
内容的提问来源于stack exchange,提问作者minh pham
相关产品推荐
相关产品推荐

