具有多个分类变量级别的子集数据集
Subset dataset with several levels of a categorical variable
我想在 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
注意:另一种选择是使用 filter
function from dplyr
,如下所示
library(dplyr)
filter(df, fct %in% c("a", "b"))
这 returns 相同的过滤(子集)数据帧。
我想在 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
注意:另一种选择是使用 filter
function from dplyr
,如下所示
library(dplyr)
filter(df, fct %in% c("a", "b"))
这 returns 相同的过滤(子集)数据帧。