5 r contingency
我特别开始思考这个问题,试图让值形成一个不重复的向量。unique
不好(根据我可以从文档中收集的内容),因为它为您提供了重复的元素,但只有一次。duplicated
有同样的问题,因为它在第一次找到重复的值时给你 FALSE。这是我的解决方法
> d=c(1,2,4,3,4,6,7,8,5,10,3)
> setdiff(d,unique(d[duplicated(d)]))
[1] 1 2 6 7 8 5 10
Run Code Online (Sandbox Code Playgroud)
以下是更通用的方法
> table(d)->g
> as.numeric(names(g[g==1]))
[1] 1 2 5 6 7 8 10
Run Code Online (Sandbox Code Playgroud)
我们可以将其推广到 1 以外的其他值。但我发现这个解决方案有点笨拙,将字符串转换为数字。有没有更好或更直接的方法来获得这个向量?
您可以对值进行排序,然后用于获取连续出现nrle
次的值。
rl <- rle(sort(d))
rl$values[rl$lengths==1]
## [1] 1 2 5 6 7 8 10
rl$values[rl$lengths==2]
## [1] 3 4
Run Code Online (Sandbox Code Playgroud)