如何通过变量对多个数据帧进行子集化?
How to subset multiple data frames by a variable?
我有一个名为“imps”的 R 数据集,其中包含多个估算数据集:
在每个数据框中,都有一个性别列(或变量)(其中 gender=1 或 gender=0)。
我想弄清楚是否有办法重新设置“imps”的子集,其中所有数据框仅包含根据 gender=1 或 gender=0 的观察结果。
如果我只选择其中一个数据框,我知道该怎么做,然后我可以从中 运行 子集函数(即):
imputed_data1 <- imps[[5]] #selecting the 5th imputed dataset
imputed_gender <- subset(imputed_data1, gender==1)
我的问题是我试图保留所有数据框(有数百个),但我想进入每个数据框并且只 select 观察 gender=1 或 gender= 0.
这可以吗?任何帮助将不胜感激。
我们可以用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))
我有一个名为“imps”的 R 数据集,其中包含多个估算数据集:
在每个数据框中,都有一个性别列(或变量)(其中 gender=1 或 gender=0)。
我想弄清楚是否有办法重新设置“imps”的子集,其中所有数据框仅包含根据 gender=1 或 gender=0 的观察结果。
如果我只选择其中一个数据框,我知道该怎么做,然后我可以从中 运行 子集函数(即):
imputed_data1 <- imps[[5]] #selecting the 5th imputed dataset
imputed_gender <- subset(imputed_data1, gender==1)
我的问题是我试图保留所有数据框(有数百个),但我想进入每个数据框并且只 select 观察 gender=1 或 gender= 0.
这可以吗?任何帮助将不胜感激。
我们可以用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))