使用 Dplyr 在 R 中添加、刪除和重命名列

使用 Dplyr 在 R 中添加、刪除和重命名列

dplyr 是一個流行的數據操作 R 包,使用戶更容易處理數據框。處理數據時的一個常見任務是重命名列,dplyr 使用 rename() 函數可以有效地處理該列。

dplyr 中的 rename() 函數在處理包含名稱不明確或不明確的列的數據集時特別有用。通過為重命名列提供簡單直觀的語法,dplyr 使用戶更容易理解和維護他們的代碼。

此外,此功能可以輕鬆地與其他 dplyr 操作(例如過濾和匯總)相結合,以在 R 中創建無縫的數據操作工作流。

這些功能在Power Query中也可用,因此它們不是 R 程序獨有的。然而,R 更擅長處理它們。

在下面的文章中,我們將探討 dplyr 的 rename() 函數的細節及其各種應用,舉例說明它在管理數據幀方面的有效性。

我們還將學習如何使用 dyplr 在 R 中添加和刪除列。

通過學習這些技術,用戶可以增強其數據操作工作的實用性,產生更穩健且無錯誤的分析,並在此過程中獲得樂趣!

讓我們進入一些數據科學,是時候開始討論了,或者我們應該說,引入基礎 R!

目錄

了解 Dplyr 重命名

R 中的 dplyr 包是一個流行的用於數據操作的tidyverse包,它提供了一組用於轉換和組織數據集的有用函數。在這些函數中,rename() 函數在修改數據框中的列名稱時特別方便。

要使用 rename() 函數,只需提供新列名後跟舊列名,如下所示new_name = old_name:例如,讓我們考慮一個示例數據框,我們想要將列名“old1”更改為“new1”。語法如下所示:

library(dplyr)
df %>% rename(new1 = old1)

此外,rename_with() 函數允許您使用指定的轉換函數重命名列。例如,您可以使用 toupper 函數將所有列名轉換為大寫:

df %>% rename_with(toupper)

如果需要一次重命名多個列,dplyr 提供了兩種方法。第一個涉及使用 rename() 函數,提供多個新的和舊的列名作為參數:

df %>% rename(new1 = old1, new2 = old2)

第二種方法涉及使用 rename_with() 函數,您可以在其中定義新舊列名數組:

new <- c('new1',="" 'new2')="" old=""><- c('old1',="" 'old2')="" df="" %="">% rename_with(~ new, all_of(old))

如上例所示,這兩種方法都會產生相同的結果。

安裝和加載 Dplyr

要開始使用 dplyr 包重命名列,您必須首先在 R 環境中安裝並加載該包。安裝 dplyr 是一個簡單的過程,可以使用以下命令執行:

install.packages("dplyr")

安裝完成後,您可以使用庫函數在您的 R 腳本中加載 dplyr 包:

library("dplyr")

安裝並加載 dplyr 包後,您現在可以利用其強大的數據操作功能,包括 rename() 函數來重命名數據框中的列。

下面是一個將 rename() 函數與著名的鳶尾花數據集結合使用的示例。假設您要將“Sepal.Length”列重命名為“sepal_length”。您可以使用以下代碼實現此目的:

iris_renamed <- iris="" %="">%
  rename(sepal_length = Sepal.Length)

在此代碼片段中,%>% 運算符用於將鳶尾花數據集通過管道傳輸到 rename() 函數中。新列名“sepal_length”被分配給舊列名“Sepal.Length”。然後將具有重命名列的結果數據框分配給變量名稱 iris_renamed。

rename() 函數還可以同時處理多個列的重命名。例如,如果要將“Sepal.Length”和“Sepal.Width”列分別重命名為“sepal_length”和“sepal_width”,可以使用以下代碼:

iris_renamed <- iris="" %="">%
  rename(
    sepal_length = Sepal.Length,
    sepal_width = Sepal.Width
  )

此代碼片段演示了使用 dplyr 的 rename() 函數重命名數據框中的多個列是多麼容易。

使用 Dplyr 重命名功能

R 中的 dplyr 包是處理數據框時進行數據操作的強大工具。它提供的眾多有用功能之一是重命名功能,它允許您輕鬆地重命名數據框中的列。

基本語法

dplyr中使用rename函數的基本語法如下:


library(dplyr)
your_dataframe %>% rename(new_column_name = old_column_name)

此命令會將指定的舊列重命名為所需的新列名稱,而不更改數據框中的任何其他列。

重命名多列

您還可以使用相同的重命名功能一次重命名多個列。為此,只需通過用逗號重命名該對來分隔每一列:


your_dataframe %>%
   rename(new_column1 = old_column1,
          new_column2 = old_column2,
          new_column3 = old_column3)

使用這種方法,您可以在單個語句中根據需要重命名任意數量的列。

或者,您可以使用該rename_with()函數將轉換應用於列名。此函數採用一個數據框和一個將應用於列名稱以生成新名稱的函數。例如:


your_dataframe %>%
  rename_with(.cols = c("old_column1", "old_column2"), .fn = toupper)

這會將指定的列名稱轉換為大寫。

與其他 Dplyr 函數鏈接

dplyr 的優勢之一是它能夠使用%>%運算符將多個操作鏈接在一起。這使您能夠以簡潔易讀的方式執行一系列數據操作。使用重命名函數時,您可以將它與其他 dplyr 函數(例如filter()mutate()和 )鏈接起來summarize()


your_dataframe %>%
  filter(some_condition) %>%
  rename(new_column_name = old_column_name) %>%
  mutate(new_column = some_expression) %>%
  summarize(some_aggregation)

此示例演示了一系列數據操作,首先進行數據過濾,然後重命名列,使用 mutate 創建新列,最後使用聚合函數匯總數據。

通過利用 dplyr 的重命名功能和鏈接功能的強大功能,R 用戶可以對其數據幀執行高效且可讀的數據操作。

常見的 Dplyr 重命名用例

Dplyr 是 R 中一個功能強大的包,它提供了一組用於執行數據操作任務的函數。一項常見任務是重命名數據框中的列。在本節中,我們將討論 dplyr 中重命名功能的一些常見用例。

1.簡單的列重命名:

使用該函數重命名單個列很簡單rename()。語法是rename(dataframe, new_name = old_name). 這是一個例子:

library(dplyr)
dataframe <- dataframe="" %="">% rename(new_column_name = old_column_name)

2.重命名多列:

您還可以通過在函數內部提供額外的列映射來重命名一個函數調用中的多個列rename()。這是一個例子:

dataframe <- dataframe="" %="">%
  rename(new_col_name1 = old_col_name1,
         new_col_name2 = old_col_name2)

3.使用字符串函數重命名列:

您可以通過使用函數重命名使用字符串函數的列,例如tolower()or 。根據Stack Overflow 的說法,這個函數取代了現在被取代的,和函數。這是一個例子:toupper()rename_with()rename_ifrename_atrename_all

dataframe <- dataframe="" %="">%
  rename_with(tolower)  # Converts column names to lowercase

4. 根據條件重命名列:

使用rename_with(),您可以應用自定義重命名功能甚至使用條件。以下示例演示了根據列是否包含特定字符串來重命名列:

rename_function <- function(x)="" {="" if="" (grepl("length",="" x))="" {="" return(paste0(x,="" "_length"))="" }="" else="" {="" return(paste0(x,="" "_default"))="" }="" }="" dataframe=""><- dataframe="" %="">% rename_with(rename_function)

處理錯誤和邊緣情況

使用 dplyr rename 函數修改數據框中的列名時,您可能會遇到一些錯誤或邊緣情況,這是由於重複的列名、列名中的空格或不正確的語法。本節提供有關如何解決這些問題的指導。

在處理重複的列名時,dplyr 無法重命名具有相同輸出名稱的列。但是,取消重複列名的解決方法是使用rename_alldplyr 包中的函數以及paste0

d %>% rename_all(~paste0(., 1:2))

此代碼將在每個列名稱後附加一個從 1 到 2 的數字,以確保沒有重複項。可以在這個Stack Overflow 討論中找到更多詳細信息。

如果列名中有空格,您可以使用反引號將列名括起來,如下所示:

df %>% rename(foo = `test col`)

paste0()最後,如果您遇到與 dplyr 不接受函數作為 old_name in相關的問題rename(),一個可能的解決方案是在函數外部構造新的列名rename(),然後將它們用作輸入。可以在這個Stack Overflow問題中找到關於類似問題的相關討論。

通過解決這些錯誤和邊緣情況,您將能夠更好地處理 dplyr 中復雜的重命名場景。

在我們關於 dplyr 重命名的文章的最後一節中,我們討論了它在數據操作任務中的重要性。rename() 函數允許用戶有效地更改列名,從而使數據框更清晰、更簡潔。這在處理大型數據集或數據預處理步驟時特別有用。

使用 dplyr 包,重命名 R 中的列很簡單,這不是硬數據科學,請查看以下內容:

  rename(new_column_name = old_column_name)

這種簡單的語法使您可以用新的列名替換舊的列名,從而提高可讀性並確保數據的一致性。此外,可以使用 rename_with() 函數來使用特定函數修改列名。這為您的數據操作提供了更好的控制和定制。

通過利用 dplyr 的強大功能和重命名功能,您可以自信地操作您的數據並提高整體數據處理能力。在學習新的 R 編程技術時,請記住始終使用可靠的資源,例如

借助工具包中的 dplyr rename,您可以應對各種數據操作挑戰並繼續提升您的 R 編程專業知識。

更多真實示例 - 添加、刪除和重命名列

列操作允許您使用dplyr在 R 中計算、添加、刪除和重命名列。在 RStudio 中打開一個新的 R 腳本。如果您不知道如何操作,請單擊鏈接以了解如何安裝 RStudio創建 R 腳本

對於此演示,使用了Lahman 數據集包。這包含可追溯到一百多年前的棒球記錄。這是一個很好的練習數據集。您可以通過快速谷歌搜索來下載它。

此外,Lahman 包有一個標記為Teams 的數據集,T 大寫。R 中命名約定的最佳實踐是使用小寫字母。所以這需要首先轉換為teams,如下圖所示。

使用 Dplyr 在 R 中添加、刪除和重命名列

列操作的基本函數

1. 在 R 中添加新列

第一個函數是mutate()。這將基於現有列創建新列。

如果要計算新列,可以使用參數後面的mutate函數:

df是任何類型數據框的替代名稱。所以在實際使用的時候,把df換成你要變異的dataframe的名字。然後,將需要命名的新變量與用於派生新列的公式一起放置。

例如,mutate函數將用於查找每一列的獲勝百分比。在 Lahman 數據集中,有一個 Win 和 Loss 列。要獲得百分比,請將 Win 除以 Win 和 Loss 的總和。但在此之前,您需要引入 dplyr 包。

如果您在沒有 dplyr 的情況下運行mutate函數,會發生以下情況:

您會收到一條錯誤消息,提示“找不到函數 mutate”。

因此,這裡是將 dplyr 引入 R 的方法。您只需要運行library (tidyverse)

您會看到dplyr是tidyverse包中的眾多函數之一。另一種選擇是運行library (dplyr)

現在,如果您將光標放在帶有mutate函數的代碼上並運行它,您將看到包含獲勝百分比的Wpct列。

使用 Dplyr 在 R 中添加、刪除和重命名列

在這種情況下,只運行了mutate函數的結果;它沒有分配給數據。

如果要將mutate函數的結果分配給數據,則需要使用賦值運算符( <-> )。完成後,運行它。然後在另一行中運行head (teams)。這會將結果分配給團隊數據集。

使用 Dplyr 在 R 中添加、刪除和重命名列

如果要檢查數據集中有哪些列可用,請使用names ( )函數。這將列出數據中的所有列名。

使用 Dplyr 在 R 中添加、刪除和重命名列

您還可以將現有函數用作mutate函數的一部分。例如,您可以使用log()函數獲取特定數據集的日誌。

使用 Dplyr 在 R 中添加、刪除和重命名列

2. 在 R 中選擇列

dplyr 中的另一個函數是select()。它要么刪除要么選擇給定的列。它的基本算法是:

使用 Dplyr 在 R 中添加、刪除和重命名列

您需要輸入數據框名稱,然後輸入要選擇的列。

例如,如果要保留數據集中的 yearID、wins 和 loss 列,只需要運行:

使用 Dplyr 在 R 中添加、刪除和重命名列

然後你會得到你想要的結果:

使用 Dplyr 在 R 中添加、刪除和重命名列

但是,如果不使用head()函數,結果將顯示列的底部行。因此,如果您要處理多行數據,則需要不斷向上滾動才能到達該列的頂部。

最佳做法是將head函數與 select 一起使用。這樣當您運行代碼時,結果將首先顯示該列的頂部行。

使用 Dplyr 在 R 中添加、刪除和重命名列

現在,如果要從數據集中刪除列,只需在列名前放置一個減號( - )。

使用 Dplyr 在 R 中添加、刪除和重命名列

要檢查列是否確實已被刪除,您可以將新數據集與舊數據集進行比較。方法如下:

首先,將具有選擇功能的R 代碼分配給一個對象。在此示例中,它已分配給teams_short。要計算列數,請使用ncol ( )函數。為teams_shortteams運行ncol函數。

使用 Dplyr 在 R 中添加、刪除和重命名列

然後您會看到一列已從數據集中刪除。

使用 Dplyr 在 R 中添加、刪除和重命名列

3.重命名R中的列

dplyr 中的最後一列函數是rename()。顧名思義,它可以重命名 R 中的選定列。

這是它的基本算法:

使用 Dplyr 在 R 中添加、刪除和重命名列

您會注意到這有點違反直覺;新名稱在前,舊名稱在後。因此,請確保不要將它們混淆。

例如,當前的yearIDdivID列將分別重命名為year_iddivision_id。在運行代碼之前,請確保將其分配給一個新對象,以免破壞原始數據集。

使用 Dplyr 在 R 中添加、刪除和重命名列

要檢查這些選定列的名稱是否已成功更改,請使用names ( )函數。

使用 Dplyr 在 R 中添加、刪除和重命名列

您會看到這些列確實已重命名。

使用 Dplyr 在 R 中添加、刪除和重命名列

曾經想知道 R 在與 LuckyTemplates 一起使用時有多強大,看看這個很棒的技術,它將為你節省大量時間。

最後的話

本教程討論了可用於執行列操作的三個基本dplyr函數。具體來說,您學習瞭如何在 R 中添加、刪除和重命名列。

您還需要探索其他功能。但了解並熟悉mutate ( )select ( )rename ( )很重要,因為它們是最常見的。

這些列編輯技術也可以在 Power Query 中完成。但是,了解如何在 dplyr 中執行此操作也很棒。當您轉向分析統計數據集時,這肯定會對您有所幫助。

常見問題

R 和 Python 有什麼區別?

對於初學者來說,R 和 Python 都是編程語言,但 Python 更像是一種通用語言,而 R 是一種統計編程語言。Python 是一種更常用、更易理解和通用的語言。

什麼是海峽?

str 簡單地顯示 r 個對象的結構

R 中的 Petal.Length 是什麼?

Petal.length 是 R 中使用的一種格式,用於重新計算我們正在測試的關係。

R 中的 DataFrame 是什麼?

R 數據框是一種表格數據結構,通常用於存儲任何類型數據的值。

dbl 代表什麼?

Dbl代表“雙類”,它是一種用於保存包含小數點的數值的數據類型。


什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

如何在 R 中保存和加載 RDS 文件

如何在 R 中保存和加載 RDS 文件

您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。

回顧前 N 個工作日——DAX 編碼語言解決方案

回顧前 N 個工作日——DAX 編碼語言解決方案

在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。

LuckyTemplates 篩選上下文簡介

LuckyTemplates 篩選上下文簡介

在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。

DAX Studio 中數據緩存的物化想法

DAX Studio 中數據緩存的物化想法

本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。

使用 LuckyTemplates 進行業務報告

使用 LuckyTemplates 進行業務報告

如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的