【问题标题】:Subset data for specific values in a variable in RR中变量中特定值的子集数据
【发布时间】:2020-08-10 20:28:13
【问题描述】:

我有一个长格式的面板数据集,看起来像这样:

idpers <- c(1040, 1040, 1041, 1041, 1041, 1232, 1277, 1277, 1277, 1277)
wave <- c(2012, 2013, 2012, 2013, 2014, 2011, 2011, 2012, 2013, 2014)
df <- as.data.frame c(idpers, wave) 

其中 idpers 是受访者 ID,wave 是调查在哪一波/年进行的指标。

我想测试在 2013 年进行的治疗的效果。我想为我的数据框子集,只针对同时具有治疗前和治疗后观察的参与者。所以我只想保留每个 idpers 行,如果相同的 idpers 有其他行,并且在 2013 年浪潮之前和之后/期间都有值。 我尝试了很多这样的事情:

df.ref%>%
  group_by(idpers)%>%
  filter(wave %in% c(2011,2012,2013,2014))

但这会保留 any 行,其中包含波形值。

我希望这很清楚,我很乐意提供更多详细信息! 非常感谢!

【问题讨论】:

    标签: r group-by dplyr tidyverse tidyr


    【解决方案1】:

    我想你正在寻找:

    library(dplyr)
    df %>% group_by(idpers) %>% filter(any(wave < 2013) && any(wave > 2013))
    
    #  idpers  wave
    #   <dbl> <dbl>
    #1   1041  2012
    #2   1041  2013
    #3   1041  2014
    #4   1277  2011
    #5   1277  2012
    #6   1277  2013
    #7   1277  2014
    

    这将包括idpers,它将在 2013 年之前至少有一个值,在 2013 年之后有一个值。

    【讨论】:

    • 完美。有用。只是跟进,使用&或&&是一样的吗?它是双向的
    • 在这种情况下,&amp;&amp;&amp; 都可以工作。但是,&amp; 用于向量运算(意味着超过 1 个元素),而 &amp;&amp; 仅用于标量。这是一篇很好的帖子,解释了stackoverflow.com/questions/6558921/boolean-operators-and 的区别
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多