R 分区筛选列表

R 分区筛选列表,r,filter,partitioning,R,Filter,Partitioning,我会像这样过滤一个列表:[1](33,7)(4)(5)(6)(8),如果项目中有两个相同的元素,则返回true或false,例如: (33,7)(4)(5)(33)FALSE (33,33)(4)(5)(6) FALSE (33,1)(7)(7)(6) TRUE (33,1)(7)(6)(5)(5)(9) TRUE (33,1)(7)(6)(6) FALSE (33,1)(1)(9)(6)(7) FALSE (33,1)(9)(9)(6)(1) FALSE 但位置2和3、4和5或6和

我会像这样过滤一个列表:
[1](33,7)(4)(5)(6)(8)
,如果项目中有两个相同的元素,则返回true或false,例如:

(33,7)(4)(5)(33)FALSE
(33,33)(4)(5)(6) FALSE
(33,1)(7)(7)(6)  TRUE
(33,1)(7)(6)(5)(5)(9) TRUE
(33,1)(7)(6)(6)  FALSE
(33,1)(1)(9)(6)(7)  FALSE
(33,1)(9)(9)(6)(1)  FALSE
但位置2和3、4和5或6和7附近出现两次的元素返回TRUE,但如果列表为7个元素,例如最后两个元素必须不同,例如:

(33,7)(4)(5)(33)FALSE
(33,33)(4)(5)(6) FALSE
(33,1)(7)(7)(6)  TRUE
(33,1)(7)(6)(5)(5)(9) TRUE
(33,1)(7)(6)(6)  FALSE
(33,1)(1)(9)(6)(7)  FALSE
(33,1)(9)(9)(6)(1)  FALSE

如评论所示,目前尚不清楚手头的数据结构。但是,这可能会有所帮助:

# creating a dummy example
lst <- list()
lst[[1]] <- c(33,33)
lst[[2]] <- c(7)
lst[[3]] <- c(4)
lst[[4]] <- c(6)
lst[[5]] <- c(6)
lst[[6]] <- c(1)

# with str(lst) giving:
List of 6
 $ : num [1:2] 33 33
 $ : num 7
 $ : num 4
 $ : num 6
 $ : num 6
 $ : num 1
所以现在,一个简单的比较就可以了

length(lst) == length(unique(lst))
# yielding
[1] FALSE
现在举一个例子,一个人有多个这样的列表:

# creating the example
lst <- lst1 <- lst2 <- list()
# list 1
lst1[[1]] <- c(33,33)
lst1[[2]] <- c(7)
lst1[[3]] <- c(4)
lst1[[4]] <- c(6)
lst1[[5]] <- c(6)
lst1[[6]] <- c(1)
# list 2
lst2[[1]] <- c(33,33)
lst2[[2]] <- c(7)
lst2[[3]] <- c(4)
lst2[[4]] <- c(5)
lst2[[5]] <- c(6)
lst2[[6]] <- c(1)
# lst is a list of two lists
lst <- list(lst1,lst2)

# testing for duplicates
vapply(1:length(lst), 
       function(k) length(lst[[k]]) == length(unique(lst[[k]])),
       logical(1))

# output
[1] FALSE  TRUE
#创建示例

lst请在您的
列表中添加
dput
。不清楚您有什么数据结构。理解所需输出有困难:为什么
(33,1)(7)(6)(6)
?@nate.edwinton,它是假的,不是吗??