如何在R的data.table物件中刪除重複的列名?
在資料分析中,我們有時會處理重複資料或名稱相同的資料表示。這種情況之一是data.table物件中的兩列列名相同。為此,我們可以結合使用which函式和duplicated函式,並將重複項的輸出設定為NULL以刪除重複的列名。
示例1
載入data.table包並建立一個data.table物件:
library(data.table) x1<−rnorm(20) DT1<−data.table(x1,x1) DT1
輸出
x1 x1 1: −1.65034927 −1.65034927 2: −1.95441645 −1.95441645 3: 2.03530252 2.03530252 4: −2.07789754 −2.07789754 5: −1.31558491 −1.31558491 6: 0.69256432 0.69256432 7: 1.83924420 1.83924420 8: −1.59751233 −1.59751233 9: −0.12015454 −0.12015454 10: 0.46507856 0.46507856 11: 1.00867249 1.00867249 12: 1.76181383 1.76181383 13: 0.35151845 0.35151845 14: −0.29470885 −0.29470885 15: −0.01617467 −0.01617467 16: 1.28775955 1.28775955 17: −1.80266832 −1.80266832 18: −0.70682196 −0.70682196 19: −2.07815278 −2.07815278 20: 0.43574626 0.43574626
從DT1中刪除一個x1:
DT1[,which(duplicated(names(DT1))):=NULL] DT1
輸出
x1 1: −1.65034927 2: −1.95441645 3: 2.03530252 4: −2.07789754 5: −1.31558491 6: 0.69256432 7: 1.83924420 8: −1.59751233 9: −0.12015454 10: 0.46507856 11: 1.00867249 12: 1.76181383 13: 0.35151845 14: −0.29470885 15: −0.01617467 16: 1.28775955 17: −1.80266832 18: −0.70682196 19: −2.07815278 20: 0.43574626
示例2
y1<−rpois(20,5) DT2<−data.table(y1,y1) DT2
輸出
y1 y1 1: 6 6 2: 5 5 3: 7 7 4: 5 5 5: 2 2 6: 3 3 7: 6 6 8: 5 5 9: 5 5 10: 3 3 11: 3 3 12: 4 4 13: 3 3 14: 6 6 15: 4 4 16: 5 5 17: 4 4 18: 3 3 19: 1 1 20: 2 2
從DT2中刪除一個y1:
DT2[,which(duplicated(names(DT2))):=NULL] DT2
輸出
y1 1: 6 2: 5 3: 7 4: 5 5: 2 6: 3 7: 6 8: 5 9: 5 10: 3 11: 3 12: 4 13: 3 14: 6 15: 4 16: 5 17: 4 18: 3 19: 1 20: 2
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP