如何使用R计算向量中的重复元素

时间:2014-04-28 14:47:00

标签: r vector count find-occurrences

我需要编写一个在R中接收2个参数的函数: 首先是一个数字= X. 第二个矢量= V. 我需要这个函数返回X的相同直线出现的最大数量 例如: f(6,c(7,6,6,3,7,9,3,6,6,6,8,9) 应该返回3

2 个答案:

答案 0 :(得分:1)

您可能不需要功能

dat <- c(7,6,6,3,7,9,3,6,6,6,8,9)

fmax <- function(x, vec){
  v <- rle(vec)
  max(v$lengths[v$values == x])
}
fmax(x=6, vec=dat)
[1] 3

当x不存在于dat

fmax <- function(x, vec){
  if(x %in% vec){
    v <- rle(vec)
    max(v$lengths[v$values == x])
  } else 0
}
fmax(x=20, vec=dat)
[1] 0

答案 1 :(得分:0)

r <- numeric()
j <- 0
X <- 6
for(i in 1:length(V){
j <- ifelse(v[i]==X,j+1,0)
r[i] <- j
}

max(r)

如果你想拥有向量中所有元素的最大长度:

a <- c(7,6,6,3,7,9,3,6,6,6,8,9)
b <- rle(a)
b <- data.frame(length=b$lengths, values=b$values)
aggregate(b, by=list(b$values), FUN=max)