在比较R中的许多向量后返回名称

时间:2015-12-02 21:09:06

标签: r

    Col1  Col2  Col3  Col4
R1  A     B     B     A
R2  D     D     NA    D
R3  E     E     E     E
R4  K     NA    NA   NA
R5  U     U     U    NA
R6  Z     Y     Y    Y

我想返回{R2,R3,R4,R5}的名称,因为所有列都在行内匹配或者是NA。在真实数据集中,将有数百列。

我发现这段代码半有用(假设这是一个名为'dat'的数据框):

all.equal(dat[5,],dat[6,])

但是只返回列不匹配的行(并且它只能用于2行)。

1 个答案:

答案 0 :(得分:1)

rownames(dat)[apply(dat, 1, function(x) length(unique(na.omit(x)))) == 1]
[1] "R2" "R3" "R4" "R5"