在 R 中删除多列

Sheeraz Gul 2022年7月18日
在 R 中删除多列

可以从 R 中的数据框中同时删除多个列。本教程演示如何在 R 中删除多个列。

在 R 中删除多列

有两种方法可以从 R 中的数据框中删除多个列。这些方法如下所示。

使用 Base R 删除多列

我们可以通过将 Null 值分配给列来从 R 中的数据框中删除多个列。使用 Base R 删除 R 中的多个列的语法是:

DataFrame[ , c('column1', 'column2',………..,'column_n)] <- list(NULL)

其中 DataFrame 是给定的数据框,在 list 中,我们将列设为 Null。让我们尝试一个例子:

#create a data frame
Delftstack <- data.frame(Name=c('Jack', 'John', 'Mike', 'Michelle', 'Jhonny'),
                         LastName=c('Danials', 'Cena', 'Chandler', 'McCool', 'Nitro'),
                         Id=c(101, 102, 103, 104, 105),
                         Designation=c('CEO', 'Project Manager', 'Senior Dev', 'Junior Dev', 'Intern'))

#View the data frame before deleting the columns
print('The DataFrame Before Deletion:')
Delftstack

#delete columns Name and LastName from a data frame
Delftstack[ , c('Name', 'LastName')] <- list(NULL)

#view data frame after deleting the columns
print('The DataFrame After Deletion:')
Delftstack

上面的代码将删除作为参数给出的列。见输出:

[1] "The DataFrame Before Deletion:"
      Name LastName  Id     Designation
1     Jack  Danials 101             CEO
2     John     Cena 102 Project Manager
3     Mike Chandler 103      Senior Dev
4 Michelle   McCool 104      Junior Dev
5   Jhonny    Nitro 105          Intern

[1] "The DataFrame After Deletion:"
   Id     Designation
1 101             CEO
2 102 Project Manager
3 103      Senior Dev
4 104      Junior Dev
5 105          Intern

我们还可以使用此方法使用要删除的列范围,该范围可以用:运算符显示,我们可以将其作为参数而不是列名传递。参见示例:

#create a data frame
Delftstack <- data.frame(Name=c('Jack', 'John', 'Mike', 'Michelle', 'Jhonny'),
                         LastName=c('Danials', 'Cena', 'Chandler', 'McCool', 'Nitro'),
                         Id=c(101, 102, 103, 104, 105),
                         Designation=c('CEO', 'Project Manager', 'Senior Dev', 'Junior Dev', 'Intern'))

#View the data frame before deleting the columns
print('The DataFrame Before Deletion:')
Delftstack

#delete columns Name and LastName from data frame
Delftstack[, 1:2] <- list(NULL)

#view data frame after deleting the columns
print('The DataFrame After Deletion:')
Delftstack

上面的代码将具有与上面的示例类似的输出。删除后查看结果:

[1] "The DataFrame After Deletion:"
   Id     Designation
1 101             CEO
2 102 Project Manager
3 103      Senior Dev
4 104      Junior Dev
5 105          Intern

使用 R 中的 dplyr 包删除多列

我们还可以使用 dplyr 包从数据框中删除多个列。我们可以使用 select() 方法提取列。

我们还可以使用 one_of 方法创建一个新的数据框,其中包含从给定数据框中删除的列。

此方法的语法是:

dataframe_new <- data frame %>% select(- one_of(columns to be removed))

首先,安装并加载 dplyr 包,然后我们可以使用上述方法从数据框中删除多个列。参见示例:

install.packages("dplyr")
library("dplyr")

#create a data frame
Delftstack <- data.frame(Name=c('Jack', 'John', 'Mike', 'Michelle', 'Jhonny'),
                         LastName=c('Danials', 'Cena', 'Chandler', 'McCool', 'Nitro'),
                         Id=c(101, 102, 103, 104, 105),
                         Designation=c('CEO', 'Project Manager', 'Senior Dev', 'Junior Dev', 'Intern'))

#View the data frame before deleting the columns
print('The DataFrame Before Deletion:')
Delftstack

# Columns to be removed
RemoveColumns <- c("Name", "LastName")

#delete columns Name and LastName from a data frame
DelftstackNew <- Delftstack %>% select(- one_of(RemoveColumns))

#view data frame after deleting the columns
print('The DataFrame After Deletion:')
DelftstackNew

上面的代码将从前一个数据框中创建一个新的数据框,其中包含已删除的列。见输出:

[1] "The DataFrame Before Deletion:"
      Name LastName  Id     Designation
1     Jack  Danials 101             CEO
2     John     Cena 102 Project Manager
3     Mike Chandler 103      Senior Dev
4 Michelle   McCool 104      Junior Dev
5   Jhonny    Nitro 105          Intern

[1] "The DataFrame After Deletion:"
   Id     Designation
1 101             CEO
2 102 Project Manager
3 103      Senior Dev
4 104      Junior Dev
5 105          Intern
Author: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

相关文章 - R Data Frame