基于因子水平的子集数据帧

时间:2020-06-29 23:12:01

标签: r dataframe

我有数据框df1

df1 <- data.frame(respondent = factor(c(1, 2, 3, 4, 5, 6, 7)),
                 location = factor(c("California", "Oregon", "Oregon",
                                     "Texas", "Oregon", "Mexico", "Canada")))

我想对其进行子集化,以便数据帧中仅保留Oregon级的location行:

df2 <- data.frame(respondent = factor(c(2, 3, 5)),
                 location = factor(c("Oregon", "Oregon",
                                     "Oregon")))

根据数据帧的级别对数​​据帧进行子集化的最直接方法是什么?

1 个答案:

答案 0 :(得分:0)

我们可以使用subset并用droplevels包裹掉未使用的levels,因为它是factor

df2 <- droplevels(subset(df1, location == 'Oregon'))