[英]Removing duplicated rows from from matrix in R
我有一個類似於
2013 1 0
2013 1 30
2013 1 100
2013 2 0
2013 2 30
2013 2 100
2013 3 0
2013 3 30
2013 3 100
2013 1 0
2013 1 30
2013 4 0
在第三列之后有額外列的地方,這些列具有額外數據。 我需要一種刪除重復行的方法。 在此示例中,我將需要刪除第二列中具有1的行。 有沒有辦法在保留我的其余數據的同時刪除這些行。
我嘗試過unique()和plicate(),但無法產生我需要的東西。 如果我的矩陣是m.dat我嘗試使用
m.dat <- m.dat[-duplicated(m.dat[,2:3])]
但這不起作用。 我是使用重復錯誤還是有另一種方法來執行此操作?
m.dat<-m.dat[m.dat[ ,2]!=1, ]
要么
m.dat<-m.dat[!(m.dat[ ,2]==1 & duplicated(m.dat[,1:3]) , ]
取決於您要尋找的東西。 如果您只想刪除第二列中具有值“ 1”的記錄或具有“ 1”並且也是重復行的記錄,我會感到困惑
如果您想知道該列中重復的數字,可以使用類似
reps<-unique(m.dat[,2][duplicated(m.dat[,2])])
然后使用%in%語句刪除所有這些
就像是...
m.dat<-m.dat[ ! m.dat[,2] %in% unique(m.dat[,2][duplicated(m.dat[,2])]) ,]
我能夠弄清楚。 我用的是
m <- duplicated(m.dat[,3:4])
m <- as.numeric(m)
ind = which(m ==1)
m.dat = m.dat[-ind,]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.