>test<-c(21,22,22,23,22,23,24)
>duplicated(test)
[1] FALSE FALSE TRUE FALSE TRUE TRUE FALSE
看得出duplicated()给出的是判断坐标:首次出现的22,函数给的值是F,但再次出现就成T了。
>indicator<-duplicated(test)
>table(test[indicator])
22 23
2 1
这是重复出现了几次(不包括首次)
所以你要的加1就行了。
>table(test[indicator])+1
22 23
3 2
上图是一个简单的例子,b为一矩阵,现在想统计第二列中数值等于1的元素个数,首先做一个逻辑判断,即b[,2]==1,得到一个由布尔变量true和false组成的向量。
此时只需要知道true的数量,由于对布尔变量求和,true转化为1,false转化为0,故对该向量求和即可得到true的数量,即b[,2]中等于1的数量。