如何在 r 中按名称删除列(附示例)
在 R 中按名称从数据框中删除列有三种常见方法:
方法一:使用Base R
#drop col2 and col4 from data frame
df_new <- subset(df, select = -c(col2, col4))
方法2:使用dplyr
library (dplyr) #drop col2 and col4 from data frame df_new <- df %>% select(-c(col2, col4))
方法3:使用data.table
library (data.table) #convert data frame to data table dt <- setDT(df) #drop col2 and col4 from data frame dt[, c(' col2 ', ' col4 '):=NULL]
以下示例展示了如何在 R 中使用以下数据框实际使用每种方法:
#create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'C', 'D'),
points=c(12, 15, 22, 29, 35, 24, 11, 24),
rebounds=c(10, 4, 4, 15, 14, 9, 12, 8),
assists=c(7, 7, 5, 8, 19, 14, 11, 10))
#view data frame
df
team points rebound assists
1 A 12 10 7
2 to 15 4 7
3 B 22 4 5
4 B 29 15 8
5 C 35 14 19
6 C 24 9 14
7 C 11 12 11
8 D 24 8 10
示例 1:使用 Base R 按名称删除列
以下代码展示了如何使用基本 R 中的subset()函数从数据框中删除点和辅助列:
#create new data frame by dropping points and assists columns
df_new <- subset(df, select = -c(points, assists))
#view new data frame
df_new
team rebounds
1 to 10
2 to 4
3 B 4
4 B 15
5 C 14
6 C 9
7 C 12
8 D 8
请注意,得分和助攻列均已从新数据框中删除。
示例 2:使用 dplyr 按名称删除列
以下代码显示了如何使用 dplyr 包中的select()函数从数据框中删除点和辅助列:
library (dplyr)
#create new data frame by dropping points and assists columns
df_new <- df %>% select(-c(points, assists))
#view new data frame
df_new
team rebounds
1 to 10
2 to 4
3 B 4
4 B 15
5 C 14
6 C 9
7 C 12
8 D 8
请注意,得分和助攻列均已从新数据框中删除。
示例 3:使用 data.table 按名称删除列
以下代码显示了如何通过使用 data.table 包将点列和辅助列设置为 NULL 来从数据框中删除这两列:
library (data.table)
#convert data frame to data table
dt <- setDT(df)
#drop points and assists columns
dt[, c(' points ', ' assists '):=NULL]
#view updated data table
dt
team rebounds
1: At 10
2: A 4
3:B4
4:B15
5:C14
6: C 9
7:C12
8: D 8
请注意,得分和助攻列均已从新数据表中删除。
注意:所有三种方法都会产生相同的结果,但在处理极大的数据集时, dplyr和data.table方法往往会更快。
其他资源
以下教程解释了如何在 R 中执行其他常见任务: