📜  从 R 编程中的一个因素中删除级别 – droplevels()函数

📅  最后修改于: 2022-05-13 01:54:36.926000             🧑  作者: Mango

从 R 编程中的一个因素中删除级别 – droplevels()函数

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

示例 1:

# Defining vector
x <- c(1, 3, 4, 8, 1, 5, 4, 4, 5, 6)
  
# Defining factor object for vector
f <- factor(x)
  
# Print factor object
cat("Factor object before deleting value:\n")
print(f)
cat("\n")
  
# Delete value at index 2
f <- f[-2]
  
# Print factor object
cat("Factor object after deleting value:\n")
print(f)
cat("\n")
  
cat("After dropping unused level:\n")
new_f <- droplevels(f)
print(new_f)

输出:

Factor object before deleting value:
 [1] 1 3 4 8 1 5 4 4 5 6
Levels: 1 3 4 5 6 8

Factor object after deleting value:
[1] 1 4 8 1 5 4 4 5 6
Levels: 1 3 4 5 6 8

After dropping unused level:
[1] 1 4 8 1 5 4 4 5 6
Levels: 1 4 5 6 8

示例 2:

# Defining columns
x <- factor(c(7, 3, 3, 7, 5, 5, 1))
y <- factor(c(1, 1, 1, 4, 4, 4, 2))
z <- c(1, 5, 3, 2, 9, 4, 7)
  
# Defining data frame
df <- data.frame(x, y, z)
df <- df[1:6, ]
  
# Print structure of data frame
str(df)
cat("\n")
  
# Drop levels from data frame
df_drop <- droplevels(df)
  
# Print structure of new data frame
str(df_drop)

输出:

'data.frame':   6 obs. of  3 variables:
 $ x: Factor w/ 4 levels "1", "3", "5", "7": 4 2 2 4 3 3
 $ y: Factor w/ 3 levels "1", "2", "4": 1 1 1 3 3 3
 $ z: num  1 5 3 2 9 4
 
 'data.frame':   6 obs. of  3 variables:
 $ x: Factor w/ 3 levels "3", "5", "7": 3 1 1 3 2 2
 $ y: Factor w/ 2 levels "1", "4": 1 1 1 2 2 2
 $ z: num  1 5 3 2 9 4