如何使用 dplyr 删除多列(附示例)


您可以使用以下任何方法使用dplyr包从 R 中的数据框中删除多列:

1.按名称删除多列

 df_new <- df %>% select(-c(col2, col4))

2. 删除范围内的所有列

 df_new <- df %>% select(-c(col2:col4))

以下示例展示了如何在实践中使用以下数据框使用每种方法:

 #create data frame
df = data. frame (rating = c(90, 85, 82, 88, 94, 90, 76, 75, 87, 86),
                points=c(25, 20, 14, 16, 27, 20, 12, 15, 14, 19),
                assists=c(5, 7, 7, 8, 5, 7, 6, 9, 9, 5),
                rebounds=c(11, 8, 10, 6, 6, 9, 6, 10, 10, 7))

#view data frame
df

   rating points assists rebounds
1 90 25 5 11
2 85 20 7 8
3 82 14 7 10
4 88 16 8 6
5 94 27 5 6
6 90 20 7 9
7 76 12 6 6
8 75 15 9 10
9 87 14 9 10
10 86 19 5 7

示例 1:按名称删除多列

以下代码显示如何从数据框中删除名为反弹的列:

 library (dplyr)

#drop points and rebounds columns
df_new <- df %>% select(-c(points, rebounds))

#view new data frame
new_df

   rating assists
1 90 5
2 85 7
3 82 7
4 88 8
5 94 5
6 90 7
7 76 6
8 75 9
9 87 9
10 86 5

请注意,名为“points”“bounces”的列均已从新数据框中删除。

示例 2:从范围中删除所有列

以下代码显示如何删除反弹列之间的所有列:

 library (dplyr)

#drop all columns between points and rebounds
df_new <- df %>% select(-c(points:rebounds))

#view new data frame
new_df

   rating
1 90
2 85
3 82
4 88
5 94
6 90
7 76
8 75
9 87
10 86

请注意,反弹之间的所有列均已从新数据框中删除。

注意:R 中的MASS包也有一个select()函数。如果还加载了此包,则必须使用dplyr::select()以便 R 知道使用dplyr包的select()函数。

其他资源

以下教程解释了如何在 dplyr 中执行其他常用功能:

如何使用 dplyr 按索引选择列
如何使用 dplyr 重命名多个列
如何使用 dplyr 替换列中的字符串

添加评论

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