使用R计算每个变量的第一个和最后一个日期

我有一个包含有关各个国家的经济信息的数据集。我想检索每个变量的第一个和最后一个日期。在数据集上方

#I have this

country <- c("AT","AT","BE","CY","CY")
date_yq    <- c("2001Q1","2001 Q2","2001 Q3","2001 Q4","2003 Q2","2003 Q4","2006 Q1","2006 Q2","2006 Q3")
gdp     <- c(NA,NA,1.2,1.3,2.7,3.1,3.2,3.3)
invest  <- c(NA,120,140,160,210,310,NA)
df      <- data.frame(country,date_yq,gdp,invest)
df$date_yq <- as.yearqtr(date_yq)
View(df)

# I would like to have this

country       <- c("AT","CY")
gdp_min_date  <- c("2001Q3","2006 Q1")
gdp_max_date  <- c("2001Q4","2006 Q3")
invest_min_date  <- c("2001Q2","2006 Q2")
invest_max_date  <- c("2001 Q4","2006 Q2")
df_dates      <- data.frame(country,gdp_min_date,gdp_max_date,invest_min_date,invest_max_date)
View(df_dates)  

您能提出一些解决方案吗?我一直在环顾四周,但找不到任何解决方案。谢谢。

编辑:我不是要检索GDP的最小值,而是每个国家的第一个可用日期。

jzq871001 回答:使用R计算每个变量的第一个和最后一个日期

library(dplyr)
df_dates <- df %>% 
  group_by(country) %>% 
  summarize(
    gdp_min_date = min(date_yq[!is.na(gdp)]),gdp_max_date = max(date_yq[!is.na(gdp)]),invest_min_date =min(date_yq[!is.na(invest)]),invest_max_date =max(date_yq[!is.na(invest)])  
  )

df_dates
本文链接:https://www.f2er.com/3160270.html

大家都在问