从多个时间序列数据框提取列创建新DataFrame
提取Austria列创建新数据框的方法
嘿,这事儿其实挺容易搞定的,我给你分享几种实用的方法,你可以根据自己的习惯选~
方法一:基础R实现(无需额外包)
如果你的两个数据框shortterm.df和longterm.df的Date列完全一致(就像你提供的示例那样),可以直接构造新数据框,同时给两个Austria列重命名避免冲突:
# 直接提取列并创建新数据框 new_df <- data.frame( Date = shortterm.df$Date, # 两个Date列相同,取任意一个都可以 Short_Austria = shortterm.df$Austria, Long_Austria = longterm.df$Austria )
如果Date列可能存在不一致(比如部分日期缺失或不匹配),推荐用merge函数按日期匹配,这样更稳妥:
# 按Date合并两个数据框的Austria列 new_df_merge <- merge( shortterm.df[, c("Date", "Austria")], longterm.df[, c("Date", "Austria")], by = "Date", suffixes = c("_short", "_long") )
方法二:用dplyr(tidyverse风格)
如果你习惯用tidyverse工具链,dplyr的代码会更简洁易读:
首先确保你已经安装并加载了dplyr:
install.packages("dplyr") # 第一次用需要安装 library(dplyr)
然后可以用bind_cols快速合并(适合Date完全一致的情况):
new_df_dplyr <- bind_cols( shortterm.df %>% select(Date, Short_Austria = Austria), longterm.df %>% select(Long_Austria = Austria) )
如果需要处理Date不一致的情况,用left_join按日期匹配:
new_df_dplyr_merge <- left_join( shortterm.df %>% select(Date, Short_Austria = Austria), longterm.df %>% select(Date, Long_Austria = Austria), by = "Date" )
不管用哪种方法,最终得到的新数据框都会包含时间序列的Date列,以及分别来自短期和长期数据的Austria数值,方便后续的分析或可视化~
内容的提问来源于stack exchange,提问作者StephenB
相关产品推荐
相关产品推荐

