r-具有多个类别变量级别的子集数据集



我想在Rstudio中为具有多个类别变量级别的数据集子集。

利用函数";子集";我只需要一个级别的就可以做到

new_df<-subset(df, df$cat.var=="level.1")

如何用多个级别进行子集划分?

您可以使用%in%

这是一个成员运算符,您可以将其用于要保留行的cat.var因子级别的向量。

new_df <- subset(df, df$cat.var %in% c("level.1", "level.2"))

例如

df <- data.frame(fct = rep(letters[1:3], times = 2), nums = 1:6)
df
# This is our example data.frame
#   fct nums
# 1   a    1
# 2   b    2
# 3   c    3
# 4   a    4
# 5   b    5
# 6   c    6
subset(df, df$fct %in% c("a", "b"))
# Subsetting on a factor using %in% returns the following output:
#   fct nums
# 1   a    1
# 2   b    2
# 4   a    4
# 5   b    5

注意:另一个选项是使用dplyr中的filter函数,如下所示

library(dplyr)
filter(df, fct %in% c("a", "b"))

这将返回相同的已筛选(已细分(的数据帧。

最新更新