對於常見的數據框之間的操作,我們這裡構建兩個數據框data1和data2來進行展示,兩列數據如下所示:
inner_join_dt()
inner_join_dt()函數可以連接兩個表格的共有部分,軟件會自動按照共有的列去進行合併
如果列太多,則可以指定列,通過設定by="Animal"即可
假如現在有個data3和data4,人名列一個為Name,一個為Worker,列名不一樣,數據是一樣的,我現在如何合併呢?只需要通過指定Name和Worker是相同的即可。
full_join_dt()
full_join_dt()函數會將數據進行全部連接,沒有數值的地方會自動填充缺失值。如下所示,Animal列將data1和data2的所有都合併起來,沒有數值地方填充上了NA。
left_join_dt()、right_join_dt()
left_join_dt()、right_join_dt()這兩個函數可以對數據進行左或者右連接。左連接會按照左邊的數據進行匹配,右連接會按照右邊的數據進行匹配。
缺失值處理
如果有缺失值,要麼直接使用中位數或者均值進行填充,要麼直接刪除缺失值。
drop_na_dt() : 一行進行刪除delete_na_cols() : 一列進行刪除delete_na_rows() : 一行進行刪除
我們直接使用full_join_dt()生成一個新的data,裡面包含缺失值
那麼如果此時我們想去掉Conc列含有缺失值的行,則直接使用函數即可,剩下的就是Conc列不含缺失值的數據框。
delete_na_cols() 和delete_na_rows()是對數據框中缺失值數量或比例大於某個閾值,就會進行行或列刪除的操作。比如這裡,我設置n=2,就會刪除缺失值大於等於2個的列,所以就剩下一個列了。
如果設置n=3則不會刪除列,因為沒有符合這個條件。
replace_na_dt()
replace_na_dt()函數可以進行對缺失值進行填充,比如我這裡使用均值進行填充。to 後面就是需要填充的內容,你想填充什麼就填充什麼。mean(data$Conc%>%na.omit())的意思就是對data中Conc列中沒有缺失的數據進行求取平均值。
replace_na_dt(data, Conc, to = mean(data$Conc%>%na.omit()))
也可以使用impute_dt()函數進行填充,直接設置填充mean即可,當然,也可以設置填充為眾數("mode"),中位數("median")。
長寬數據的轉換
R語言中最常用的還包括長款數據的轉換,方便數據分析。我們這裡使用函數的example來進行舉例,我們先生成一個stocks的數據框。
longer_dt()
使用longer_dt()函數對數據進行寬變長的操作
wider_dt()
如果想逆轉回來,只需要使用wider_dt()進行就可以了,使用name指定長數據的name,使用value指定長數據的value即可。
小提示
對於一些函數還沒搞懂的,直接使用? + 函數名,比如你還沒弄懂wider_dt(),你就直接?wider_dt(),就會出現相應的幫助介紹。
怎麼樣,簡單嗎?