假设我有以下数据集:
keycard=c("a","b","c","b","c","b","c","a","b")我想计算"bc“在向量中出现的次数。我该怎么做呢?
发布于 2019-02-17 15:46:19
您可以通过使用带有grepRaw()函数的模式匹配来折叠keycard向量并对其进行处理:
s <- paste(keycard, collapse = "")
length( grepRaw("bc", s, all = T) )
#[1] 3发布于 2019-02-17 18:02:12
你可以像下面这样做一个小函数,其中vec是你的向量,number是你要找的数字,beg和end是你要找的向量的开头和结尾:
sum_occurences <- function(vec, number, beg, end) {
accum <- Reduce(paste0, vec[beg:end], accumulate = T)
last_two <- substr(accum, nchar(accum) - 1, nchar(accum))
return(sum(last_two == as.character(number)))
}您可以将其应用为:
keycard = c(4,5,2,5,2,4,6,5,2)
sum_occurences(keycard, 52, 1, 5)
[1] 2https://stackoverflow.com/questions/54731065
复制相似问题