R中的數據操作:什麼是變量,使用dplyr包
已發表: 2020-03-26目錄
介紹
除了員工和基礎設施,數據是任何公司的新基石。 從大公司到小型行業,數據是推動其業務發展的燃料。 這些數據與他們的日常業務交易、客戶購買數據、銷售數據、財務圖表、業務統計、營銷活動等等相關聯。 這就是為什麼O'Reilly Media 的創始人 Tim O'Reilly 說我們正在進入一個數據比軟件更重要的情況。
但是這麼多數據怎麼辦? 公司使用這些數據來獲得對其業務績效的寶貴見解。 他們聘請了在 R 中執行數據操作的數據科學家來理解這些數據。 例如,了解過去一年的銷售和營銷數據將使他們了解自己的立場。 最近的一項研究表明,到 2023 年,數據分析市場的價值預計將達到 776 億美元。
聘請數據科學家通過稱為數據操作的過程來理解這些數據。
什麼是數據操作?
數據操作是組織數據以更好地閱讀和理解它的過程。 例如,公司官員可能會從他們的系統和日誌中獲取客戶數據。 大多數情況下,這些數據將存儲在 CRM(客戶關係管理)軟件和 Excel 表中。 但它可能沒有正確組織。 數據操作包括組織所有這些數據的方法,例如按照字母順序。
可以根據日期、時間、序列號或任何其他字段對數據進行排序。 公司會計部門的人員使用這些數據來確定銷售趨勢、用戶偏好、市場統計數據和產品價格。 金融分析師使用數據來了解股票市場的表現、趨勢以及他們應該投資的最佳股票。
此外,Web 服務器數據可用於了解網站的流量。 在這個技術時代,物聯網是數據來自連接到機器的傳感器的技術示例。 該數據用於確定機器的性能,以及是否存在任何缺陷。 數據處理在物聯網中至關重要,因為到 2025 年市場價值將達到 816.7 億美元。
數據操作通常使用稱為 R 的編程語言執行。讓我們更好地了解該語言。
什麼是R?
要了解R 中的數據操作,您必須了解 R 的基礎知識。它是一種用於數據分析、統計計算和人工智能的現代編程語言。 該語言由Ross Ihaka 和 Robert Gentleman於 1993 年創建。 如今,研究人員、數據分析師、科學家和統計學家使用 R 來分析、清理和可視化數據。
R 有一個龐大的目錄,由圖形和統計方法組成,可以支持機器學習、線性回歸、統計推斷和時間序列。 根據 GNU 通用公共許可證,該語言可免費用於 Windows、Mac 和 Linux 等操作系統。 它是平台友好的,這意味著在一個平台上編寫的 R 代碼可以在另一個平台上輕鬆執行。
R 現在被認為是數據科學的主要編程語言。 但它是一種綜合性語言,因為您可以將其用於軟件開發以及統計建模等複雜任務。 您可以使用它的包 RShiny 開發 Web 應用程序。
它是如此強大的語言,以至於谷歌和 Facebook 等一些世界上最好的公司都在使用它。
讓我們看看 R 的一些最重要的特性:
- 它有CRAN (綜合 R 存檔網絡) ,它是一個包含 10,000 多個 R 包的存儲庫,具有處理數據所需的所有功能
- 它是一種開源編程語言。 這意味著您可以免費下載它,甚至可以為其開發做出貢獻,更新其功能並自定義其現有功能
- 您可以從 R 有用的圖形庫(例如ggplot2和plotly )中的手頭數據創建高質量的可視化
- R 是一種速度非常快的語言。 由於它是一種解釋型編程語言,因此無需編譯器即可將 R 程序轉換為可執行代碼,因此 R 腳本運行速度更快
- R 可以快速執行各種複雜的計算,包括數組、數據幀和向量。 有許多運算符用於執行這些計算
- 它處理結構化和非結構化數據。 大數據和 SQL 擴展可用於處理所有類型的數據
- R 擁有一個不斷發展的社區,擁有最聰明的頭腦。 這些人通過開發 r 庫和更新不斷為編程語言做出貢獻
- 您可以輕鬆地將 R 與 Python、Java 和 C++ 等其他編程語言集成。 您還可以將其與Hadoop結合起來進行分佈式計算
現在您已經收集了 R 編程語言的基礎知識,讓我們深入了解令人興奮的內容!
R中的變量
在 R 中編程或在 R 中執行任何數據操作時,您必須處理變量。 變量用於存儲可能是字符串、整數、浮點整數或布爾值形式的數據。 這些變量在內存中為其內容保留一個空間。 與傳統編程語言不同,R 中的變量與 R 對像一起分配。
變量沒有數據類型,但獲取分配給它的 R 對象的類型。 最受歡迎的 R 對像是:
- 矢量圖
- 列表
- 數組
- 矩陣
- 因素
- 數據框
這些數據結構對於R 中的數據操作和數據分析非常重要。 讓我們更詳細地看一下它們,以了解基本的數據操作:
矢量圖
它們是最基本的數據結構,用於一維數據。 原子向量的類型有:
- 整數
- 邏輯的
- 數字
- 複雜的
- 特點
當您在 R 中創建值時,它變為長度為 1 的單元素向量。例如,
打印(“ABC”); # 字符類型的單元素向量
print(10.5) # double 類型的單元素向量
使用它們的索引號訪問向量中的元素。 向量中的索引位置從 1 開始。例如,
t <- c(“週一”、“週二”、“週三”、“週六”)
u <- t[c(1,2,3)]
打印(u)
結果將是“週一”“週二”“週三”
列表
這些是 R 中的對象,用於在其中保存不同類型的元素。 這些可以是整數、字符串甚至列表。 如果數據不能保存在數據框或數組中,這是最好的選擇。 列表也可以包含一個矩陣。 您可以使用 list() 方法創建列表。
使用以下代碼創建列表:
list_data <- list(“黑色”、“綠色”、c(11,4,14), TRUE, 31.22, 120.5)
打印(列表數據)
可以使用列表索引訪問列表元素。
print(list_data[1]) #代碼打印出列表的第一個元素
使用列表進行數據操作的示例:
list_data[4] <- NULL # 如果列表有 4 個元素,此代碼將刪除列表的最後一個元素
閱讀:用於數據科學的 R 與 Python
數組
數組是只能用於存儲單一數據類型的對象。 二維以上的數據可以存儲在數組中。 為此,您必須使用將向量作為輸入的 array() 函數。 它使用 dim 參數中的值來創建數組。
例如,看下面的代碼:
vector_result <- array(c(vectorA,vectorB),dim = c(3,3,2))
打印(向量結果)
矩陣
在這些 R 對像中,元素以二維佈局組織。 矩陣包含相似原子類型的元素。 當元素屬於單個類時,這些是有益的。 為數學計算創建具有數字元素的矩陣。 您可以使用 matrix() 函數創建矩陣。
創建矩陣的基本語法如下:
矩陣(數據,nrow,ncol,byrow,dimnames)
- 數據——這是成為矩陣數據元素的輸入向量
- Nrow – 這是您要創建的行數
- Ncol – 這是您要創建的列數
- Byrow——這是一個合乎邏輯的線索。 如果其值為 TRUE,則向量元素將按行排列
- Dimname – 列和行的名稱
因素
這些 R 對像用於對數據進行分類並將它們存儲為級別。 它們適用於統計建模和數據分析。 整數和字符串都可以存儲在因子中。 您可以使用 factor() 函數通過提供向量作為方法的輸入來創建因子。

數據框
它具有二維結構,例如具有行和列的數組。 在這裡,每一行都有一組屬於每一列的值。 這些列包含一個變量的值。 它們用於表示電子表格中的數據。 這些可用於存儲因子、數字或字符類型的數據。
數據框具有以下特點:
- 行名必須是唯一的
- 列名必須為非空
- 每列的數據項數必須相同
R中的數據操作
在R 中進行數據操作期間,第一步是從龐大的數據集中創建小數據樣本。 這樣做是因為無法一次分析整個數據集。 通常,數據分析師會創建數據集的代表性子集。 這有助於他們識別更大數據集中的趨勢和模式。 這種抽樣過程也稱為子集。
在 R 中創建子集的不同方法如下:
- $ -這會選擇數據的單個元素,其結果始終是一個向量
- [[ -此子集運算符也返回單個元素,但您可以通過它們的位置來引用元素
- [ -此運算符用於返回數據的多個元素
R中數據操作的一些基本功能是:
樣本()函數
顧名思義, sample()方法用於從更大的數據集中創建數據樣本。 除了這個命令,您還提到了您希望從數據集或向量中提取的樣本數量。 基本語法如下:
樣本(x,大小,替換 = FALSE,概率 = NULL)
x - 這可以是一個向量或多個元素的數據集,必須從中選擇樣本
size - 這是一個正整數,表示要選擇的項目數
replace -這可以是 True 或 False,無論您想要有或沒有替換的採樣
prob - 它是用於提供權重向量的參數,用於獲取正在採樣的向量的元素
表()函數
此函數創建一個頻率表,用於計算特定變量的唯一值的數量。 例如,讓我們使用 iris 數據集創建一個頻率表:
表(鳶尾花$物種)
上面編寫的代碼創建了一個表格,描述了 iris 數據集中的物種類型。
重複的()
duplicated() 方法用於識別和刪除數據集中的重複值。 它將向量或數據框作為參數,並為重複的元素返回 True。 例如,
重複(c(1,1,3))
這將檢查其中哪些元素是重複的並返回 True 或 False。
另請閱讀:R 中的決策樹
使用 dplyr 包在 R 中進行數據操作
R 提供了一個簡單易用的包 dplyr 用於數據操作。 該軟件包具有一些用於操作、數據探索和轉換的內置方法。 讓我們看看這個包的一些最重要的功能:
選擇()
select() 方法是R 中數據操作的基本功能之一。 此方法用於在 R 中選擇列。使用此方法,您可以選擇數據作為其列名。 可以根據特定條件選擇列。 假設我們要選擇名為 myData 的數據框的第 3列和第4列,代碼將是:
選擇(我的數據,3:4)
篩選()
此方法用於過濾匹配特定條件的數據集行。 它可以像 select() 一樣工作,首先傳遞數據幀,然後使用逗號分隔條件。
例如,如果要過濾掉數據集中汽車顏色為紅色的列,則必須編寫:
過濾器(汽車,顏色==“紅色”)
結果,將顯示匹配的行。
變異()
您可以使用mutate() 方法在數據集中創建新列,同時保留舊列。 可以通過指定條件來創建這些列。 例如,
變異(mtcars,mtcars_new_col = mpg / cyl)
在此命令中,在 mtcars 數據集中,創建了一個新列mtcars_new_col ,其中包含 mpg 列除以 cyl 列的值。
安排()
這用於使用一個或多個變量按升序或降序對行進行排序。 您可以在排序變量之前添加減號 (-),而不是應用 desc() 方法。 這將指示排序的降序。 例如,
安排(我的數據集,-Sepal.Length)
通過...分組()
group_by() 方法用於按一個或多個變量對數據集中的觀察進行分組。
總結()
summarise() 函數有助於確定數據洞察力,例如均值、中值和眾數。 它與另一個方法 group_by 創建的分組數據一起使用。 summarise() 有助於將多個值減少為單個值。
合併()
merge() 方法將數據集組合或合併在一起。 這對於將多個輸入數據源組合在一起很有用。
該方法為您提供了 4種合併數據集的方法。 它們在下面提到:
- 自然連接-這用於將符合指定條件的行保留在數據框中
- 全外連接——合併並存儲兩個數據幀中的所有行
- 左外連接——存儲數據框 A 的所有行,以及 B 中匹配的行
- 右外連接——存儲數據框 B 的所有行,以及 A 中匹配的行
重命名_if()
此函數可用於在滿足指定條件時重命名數據框的列。
重命名_all()
這用於在不指定任何條件的情況下重命名數據框的所有列。
從世界頂尖大學學習數據科學課程。 加入我們的行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
管道操作員
管道運算符可用於magrittr 和 dplyr等包中,用於簡化您的整體代碼。 運算符可讓您將多個功能組合在一起。 由 %>% 符號表示,它可以與流行的方法一起使用,例如 summarise()、filter()、select() 和 group_by(),同時在 R 中進行數據操作。
除了 dplyr,CRAN 中還有許多其他包用於R 中的數據操作。 事實上,你會發現超過 7000 個包可以減少你的編碼和錯誤。 其中許多軟件包是由專家開發人員創建的,因此您可以放心使用。 這些包括:
- 數據表
- 潤滑
- ggplot2
- 讀者
- 重塑2
- 蒂迪爾
結論
如果您是R 中數據操作的初學者,您可能會選擇 R 中可用的內置基本函數。這些方法包括 with()、within()、duplicated()、cut()、table()、樣本()和排序()。 但它們既耗時又重複。 這不是一個非常有效的選擇。
因此,最好的方法是使用 CRAN 中的大量軟件包,例如 dplyr。 這些非常有用,可以讓你的程序更有效率。
哪個包對 R 中的數據操作有用?
數據操作過程用於修改可用數據,使其更易於閱讀,同時使其更有條理。 收集數據的機器通常存在大量錯誤和不准確之處。 數據操作允許您消除這些不准確之處並提供更準確的數據。
有很多方法可以在 R 中執行數據操作,例如使用 ggplot2、readr、dplyr 等包以及使用像 inside()、with() 等基本 R 函數。但是,dplyr 包被認為非常對 R 中的數據操作很有用。這個包由專門為數據操作而設計的各種函數組成,與其他方法和包相比,它允許更快地處理數據。
R 中 dplyr 包的目的是什麼?
dplyr 包被認為是在 R 中以最高效率進行數據操作的最佳包。 早些時候,有一個名為 plyr 的包,它已經被迭代形成 dplyr。 現在,dplyr 完全專注於數據幀。 這就是為什麼它更快,具有更好和一致的 API,並且也非常易於使用的原因。
與 R 中的其他數據操作包相比,dplyr 包以增強的性能充分利用可用數據。
你怎麼能操縱數據?
為了執行數據操作,您需要按一般順序執行某些步驟。 請按照以下步驟操作:
1. 首先,您需要一個從數據源創建的數據庫。
2. 接下來,您需要通過數據操作來清理、重新排列和重組可用數據。
3. 現在,您必須開發一個您將使用的數據庫。
4. 在這裡,您將能夠合併、刪除和修改可用信息。
5. 最後,分析可用數據並從中生成有用的信息。