如何在 r 中使用 droplevels 函数(附示例)


R 中的droplevels()函数可用于删除未使用的因子级别。

如果我们想要删除由于向量或数据框的子集而不再使用的因子级别,则此函数特别有用。

该函数使用以下语法:

掉落等级 (x)

其中x是要从中删除未使用的因子级别的对象。

本教程提供了一些如何在实践中使用此功能的示例。

示例 1:删除向量中未使用的因子级别

假设我们创建一个具有五个因子级别的数据向量。接下来,假设我们定义一个新的数据向量,其中仅包含原始五个因子级别中的三个。

 #define data with 5 factor levels
data <- factor (c(1, 2, 3, 4, 5))

#define new data as original data minus 4th and 5th factor levels
new_data <- data[-c(4, 5)]

#view new data
new_data

[1] 1 2 3
Levels: 1 2 3 4 5

虽然新数据只包含三个因子,但我们可以看到它仍然包含原来的五个因子水平。

要删除这些未使用的因子级别,我们可以使用droplevels()函数:

 #drop unused factor levels
new_data < -droplevels (new_data)

#view data
new_data

[1] 1 2 3
Levels: 1 2 3

新数据现在仅包含三个级别的因素。

示例 2:删除数据框中未使用的因子级别

假设我们创建一个数据框,其中一个变量是五水平因子。接下来,假设我们定义一个新的数据框,删除其中两个因子级别:

 #create data frame
df <- data. frame (region= factor (c('A', 'B', 'C', 'D', 'E')),
                 sales = c(13, 16, 22, 27, 34))

#view data frame
df

  regional sales
1 to 13
2 B 16
3 C 22
4 D 27
5 E 34

#define new data frame
new_df <- subset (df, sales < 25)

#view new data frame
new_df

  regional sales
1 to 13
2 B 16
3 C 22

#check levels of region variable
levels (new_df$region)

[1] “A” “B” “C” “D” “E”

尽管新数据库仅包含区域列中的三个因子,但仍包含原始的五个因子级别。如果我们尝试使用这些数据创建绘图,就会产生问题。

要从区域变量中删除未使用的因子级别,我们可以使用droplevels()函数:

 #drop unused factor levels
new_df$region <- droplevels (new_df$region)

#check levels of region variable
levels (new_df$region)

[1] “A” “B” “C”

现在区域变量仅包含三个级别的因素。

您可以在此页面上找到更多 R 教程。

添加评论

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