簡體   English   中英

刪除所有重復的列,但重復的列名稱相同R

[英]Removing all but one duplicated column with same name R

我有一個包含約200個列名的數據表,但是,我有幾個重復的列,各方面都完全相同,即它們具有相同的名稱和相同的條目。

我想擺脫所有這些重復的列之一。

舉個例子:

Code         AEE       AEE      Code      AEE    EPI       Code     AEPI
20/09/1991  4562.43 108.13  20/09/1991  2017698 60.16   20/09/1991  18309
23/09/1991  4578.89 108.52  23/09/1991  2017698 56.55   23/09/1991  18309
24/09/1991  4578.89 108.52  24/09/1991  2017698 58.36   24/09/1991  18309
25/09/1991  4631.04 109.76  25/09/1991  2017698 56.55   25/09/1991  18309
26/09/1991  4665.34 110.57  26/09/1991  2017698 58.36   26/09/1991  18309

如您所見,“代碼”列經常重復。

這樣做: Data[, Code := NULL]僅擺脫第一個“ Code”,而不擺脫其他“ Code”。

理想情況下,輸出如下所示:

    Code       AEE   AEE     AEE     EPI    AEPI
20/09/1991  4562.43 108.13  2017698 60.16   18309
23/09/1991  4578.89 108.52  2017698 56.55   18309
24/09/1991  4578.89 108.52  2017698 58.36   18309
25/09/1991  4631.04 109.76  2017698 56.55   18309
26/09/1991  4665.34 110.57  2017698 58.36   18309

因此,僅保留第一個“代碼”列。 謝謝!

嘗試這個:

Data <- Data[, !duplicated(lapply(Data, summary))]

您可以按列號刪除:

Data[, c(4,7) := NULL]   

Data
#         Code     AEE    AEE     AEE   EPI  AEPI
#1: 20/09/1991 4562.43 108.13 2017698 60.16 18309
#2: 23/09/1991 4578.89 108.52 2017698 56.55 18309
#3: 24/09/1991 4578.89 108.52 2017698 58.36 18309
#4: 25/09/1991 4631.04 109.76 2017698 56.55 18309
#5: 26/09/1991 4665.34 110.57 2017698 58.36 18309

您也可以這樣做:

df <- df[,!duplicated(names(df))]

要么

df <- df[,unique(names(df))]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM