【问题标题】:Removing rows between two ID-values in panel data set删除面板数据集中两个 ID 值之间的行
【发布时间】:2020-09-18 15:43:52
【问题描述】:

我有一个包含以下列的面板数据集:“ID”、“Year”、“Poverty rate”、“Health services”。

我有 2011-2013 年的数据,表格按照 ID 的值排序,如下所示:

merged_data_frame = structure(list(ID = c(1001,1001,1001,2001,2001,2001,2002,2002,2002,2003,2003,2003,3001,3001,3001), 
               Year = c(2011,2012,2013,2011,2012,2013,2011,2012,2013,2011,2012,2013,2011,2012,2013),
               Poverty_rate = c(0.5,0.4,0.3,0.45,0.1,0.35,0.55,0.55,0.55,0.6,0.7,0.8,0.1,0.11,0.1 )), row.names = c(1:15), class = "data.frame")

如何删除 ID 介于 2001 和 2003 之间的行的值?我的实际数据集有超过 5000 个值,所以我需要一些东西来删除 2001 和 2xxx 之间的所有内容。

我设法删除了一个和一个值,但考虑到数据集的大小,这不是一个选项:

new_data_frame<-subset(merged_data_frame, merged_data_frame$ID!=20013)

【问题讨论】:

    标签: r subset panel


    【解决方案1】:

    试试这个,使用filter(!ID %in% c(2001,2003)

    merged_data_frame = structure(list(ID = c(1001,1001,1001,2001,2001,2001,2002,2002,2002,2003,2003,2003,3001,3001,3001), 
                   Year = c(2011,2012,2013,2011,2012,2013,2011,2012,2013,2011,2012,2013,2011,2012,2013),
                   Poverty_rate = c(0.5,0.4,0.3,0.45,0.1,0.35,0.55,0.55,0.55,0.6,0.7,0.8,0.1,0.11,0.1 )), row.names = c(1:15), class = "data.frame")
    
    df = merged_data_frame %>% 
      filter(!ID %in% c(2001,2003))
         
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      相关资源
      最近更新 更多