我有这个玩具矩阵:
m
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 1 3 1 6 8 8 8
[2,] 2 2 5 7 9 7 4
[3,] 1 2 3 4 5 6 7
[4,] 1 2 3 4 5 6 7
[5,] 1 2 3 4 5 6 7
我想只保留4
个唯一元素的行。
我最初的策略是使用......
apply(m, 1, function(x) unique(x))
[[1]]
[1] 1 3 6 8
[[2]]
[1] 2 5 7 9 4
[[3]]
[1] 1 2 3 4 5 6 7
[[4]]
[1] 1 2 3 4 5 6 7
[[5]]
[1] 1 2 3 4 5 6 7
...这将告知R每行中的唯一元素。
然后就像m[length(apply(m, 1, function(x) unique(x)))==4, ]
一样简单。
但是,不是那么容易...... apply()
的输出,至少在这种情况下是一个列表,因此,我不能使用这个技巧。
你能帮忙吗?