如何在 r 中按因子级别对数据框进行子集化


您可以使用以下任一方法按 R 中的因子水平对数据框进行子集化:

方法一:按单因素水平子集

 #subset rows where team is equal to 'B'
df_sub <- df[df$team == ' B ', ]

方法 2:按多个因子水平进行子集

 #subset rows where team is equal to 'A' or 'C'
df_sub <- df[df$team %in% c(' A ', ' C '), ]

以下示例展示了如何在 R 中使用以下数据框来实际使用这些方法:

 #create data frame
df <- data. frame (team=factor(c('A', 'A', 'B', 'B', 'B', 'C')),
                 dots=c(22, 35, 19, 15, 29, 23))

#view data frame
df

  team points
1 to 22
2 to 35
3 B 19
4 B 15
5 B 29
6 C 23

方法一:按单因素水平子集

以下代码显示如何创建一个按行划分为子集的新数据框,其中团队列中的值等于“B”:

 #subset rows where team is equal to 'B'
df_sub <- df[df$team == ' B ', ]

#view updated data frame
df_sub

team points
3 B 19
4 B 15
5 B 29

请注意,新数据框仅包含团队列中的值等于“B”的行。

示例 2:按多个级别的因子进行子集

以下代码显示如何创建一个按行划分为子集的新数据框,其中团队列中的值等于“A”或“C”:

 #subset rows where team is equal to 'A' or 'C'
df_sub <- df[df$team %in% c(' A ', ' C '), ]

#view updated data frame
df_sub

team points
1 to 22
2 to 35
6 C 23

请注意,新数据框仅包含团队列中的值等于“A”或“C”的行。

使用此语法,您可以在%in%运算符后面的向量中包含任意数量的因子级别,以获取更多因子级别的子集。

相关:如何在 R 中使用 %in% 运算符(附示例)

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何在 R 中将因子转换为数字
R中如何将因子转换为字符
如何在 R 中重新排列因子水平

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注