如何基于Date变量将data.frame从宽格式转长格式(匹配economics_long)
将宽格式时间序列数据转换为
economics_long格式的一行代码解决方案 你要的一行代码解决方案可以用tidyr包的pivot_longer()函数实现,完全不需要手动拆分合并数据集:
library(tidyr) df_long <- pivot_longer(your_dataframe_name, cols = -Date, names_to = "Variable", values_to = "Value")
参数说明
your_dataframe_name:替换成你实际的data.frame名称cols = -Date:指定排除Date列,把剩余的所有数值列(pce、pop、psavert等)转换成长格式的变量names_to = "Variable":将原宽格式的列名(比如pce、pop)存入新的Variable列values_to = "Value":将原宽格式各列的对应数值存入新的Value列
如果使用旧版本的tidyr,可以用兼容的gather()函数,代码更简洁:
df_long <- gather(your_dataframe_name, key = "Variable", value = "Value", -Date)
执行后,df_long的结构就和economics_long完全一致:每行对应一个日期、一个变量名称和该变量在当日的取值。
内容的提问来源于stack exchange,提问作者Joschi Nin
相关产品推荐
相关产品推荐

