close

對於常見的數據框之間的操作,我們這裡構建兩個數據框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(),就會出現相應的幫助介紹。

怎麼樣,簡單嗎?

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()