2017-02-16 48 views
1

這似乎很簡單,我幾次搜索後都找不到答案,但我不知道自己做錯了什麼。具體而言,我想知道MARGIN論據是否應該允許我檢查與duplicated重複的列。如何將複製函數應用於數據幀的列

這是可以編碼:

dim(b) 
    [1] 59 130 
duplicated(b, MARGIN = 2) 
    [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE 
    [14] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE 
    [27] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE 
    [40] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE 
    [53] FALSE FALSE FALSE FALSE FALSE FALSE FALSE 
duplicated(b, MARGIN = 1) 
    [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE 
    [14] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE 
    [27] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE 
    [40] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE 
    [53] FALSE FALSE FALSE FALSE FALSE FALSE FALSE 

從1改變到MARGIN 2沒有影響,每次我得到59分的結果爲59點的行。我正在尋找最簡單的方法來刪除重複的列,並遇到了duplicated。我認爲重複應該工作,因爲在文檔中它提到了保證金參數MARGIN the array margin to be held fixed: a single integer.但顯然我還不明白。

請詳細說明,謝謝。

回答

2

MARGIN參數僅適用於duplicated()的數組方法,而不適用於數據框方法。但是您可以使用

b[!duplicated(c(b))] 

刪除數據框的重複列。 c()用於刪除「data.frame」類,將b轉換爲列表。 duplicated()的默認方法在列表上工作。有關更多信息,請參見help(duplicated)

相關問題