HOWTO · R

在 R 中刪除多列

本教程演示如何刪除 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