我R中,看起來像有data.frame基於重複和值的行如下:的R - 刪除另一列
> inputtable <- data.frame(TN = c("T","N","T","N","N","T","T","N"),
+ Value = c(1,1,2,2,2,3,3,5))
> inputtable
TN Value
1 T 1
2 N 1
3 T 2
4 N 2
5 N 2
6 T 3
7 T 3
8 N 5
我想刪除,在Value
列重複值,但只如果在TN
列中一行有「T」,另一行有「N」。
我重複發揮各地,但是,這並不工作,我已經編碼的方式:
TNoverlaps.duprem <- TNoverlaps[ !(duplicated(TNoverlaps$Barcode) & ("T" %in% TNoverlaps$TN & "N" %in% TNoverlaps$TN)), ]
和
TNoverlaps.duprem <- TNoverlaps[ duplicated(TNoverlaps$Barcode) & !duplicated(TNoverlaps$Barcode, TNoverlaps$TN), ]
如果有兩個以上的列,如行3-5以上,我想刪除所有這些,因爲在TN
列中至少有一個是「T」,一個是「N」。
這裏的輸出我想
> outputtable
TN Value
6 T 3
7 T 3
8 N 5
我找到了很多關於重複行的問題,以及基於多列刪除行。但我沒有看到有人這樣做過。
是否爲了事項?或者你只是想刪除有多個「唯一」值的行?換句話說,這會工作嗎? (inputtable,ave(as.integer(TN),Value,FUN = function(x)length(unique(x))))<2'或'table(unique(inputtable)$ Value)[as.character可輸入$ Value)] <2'? –
您的'with'語句完全符合我的需求。你能否請你創建一個答案並解釋你如何應用這個'ave'命令?謝謝!我實現了這個:'outputtable < - inputtable [with(inputtable,ave(as.integer(TN),Value,FUN = function(x)length(unique(x)))<2,]' –