【问题标题】:How to subset multiple data frames by a variable?如何通过变量对多个数据帧进行子集化?
【发布时间】:2021-06-25 22:31:16
【问题描述】:

我有一个名为“imps”的 R 数据集,其中包含多个估算数据集:

在每个数据框内,都有一个性别列(或变量)(其中性别=1 或性别=0)。

我正在尝试弄清楚是否有办法对“imps”进行重新子集,其中所有数据框仅包含取决于性别 = 1 或性别 = 0 的观察结果。

如果我只选择其中一个数据框,我就知道该怎么做,然后我可以从中运行子集函数(即):

imputed_data1 <- imps[[5]] #selecting the 5th imputed dataset

imputed_gender <- subset(imputed_data1, gender==1)

我的问题是我试图保留所有数据框(有数百个),但我想进入每个数据框,只选择性别 = 1 或性别 = 0 的观察结果。

这可能吗?任何帮助将不胜感激。

【问题讨论】:

    标签: r dataframe subset imputation


    【解决方案1】:

    我们可以用lapply 包装

    imps1 <- lapply(imps, subset, subset = gender == 1)
    imps0 <- lapply(imps, subset, subset = gender == 0)
    

    或使用tidyverse

    library(dplyr)
    library(purrr)
    imps1 <- map(imps, ~ .x %>%
                       filter(gender == 1))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-16
      • 1970-01-01
      相关资源
      最近更新 更多