gpt4 book ai didi

r - 检测向量中的第 n 次重复(和第 n+1 次,...)

转载 作者:行者123 更新时间:2023-12-01 11:26:17 24 4
gpt4 key购买 nike

给定一个向量,如:

x <- c("r", "r", "b", "b", "b", "b", "r", "r", "y", "y")

如何检测代表值的(至少)第 n 次重复的元素?

对于这种情况,如果我们不想要超过两次的重复,这应该给出:

duplicatedN(x, 2)
# F, F, F, F, T, T, T, T, F, F

换句话说:如果前面至少有 N 个元素具有相同的值 v v 的元素 i 应该被标记为 TRUE.

最佳答案

使用 data.table 的可能解决方案:

library(data.table)

duplicatedN <- function(x,n=2){
DT <- data.table(A=x)
DT[,dup:=1:.N > n,by=A]
return(DT$dup)
}

x <- c("r", "r", "b", "b", "b", "b", "r", "r", "y", "y")

> duplicatedN(x,1)
[1] FALSE TRUE FALSE TRUE TRUE TRUE TRUE TRUE FALSE TRUE
> duplicatedN(x,2)
[1] FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE FALSE FALSE
> duplicatedN(x,3)
[1] FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE
> duplicatedN(x,4)
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

关于r - 检测向量中的第 n 次重复(和第 n+1 次,...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37044643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com