从R中具有重复子元素的列表中删除元素
我在R中有一个列表,里面有几个属性,比如:从R中具有重复子元素的列表中删除元素,r,list,R,List,我在R中有一个列表,里面有几个属性,比如: [[1]] [[1]]$membership [1] 1 1 1 2 2 2 1 3 3 [[2]]$csize [1] 4 3 2 [[3]]$no [1] 3 [[2]] [[1]]$membership [1] 1 1 2 2 2 3 1 3 3 4 4 [[2]]$csize [1] 3 3 3 2 [[3]]$no [1] 4 [[3]] [[1]]$membership [1] 1 2 2 2 2 3 1 3 4 4 4 [[2]]$c
[[1]]
[[1]]$membership
[1] 1 1 1 2 2 2 1 3 3
[[2]]$csize
[1] 4 3 2
[[3]]$no
[1] 3
[[2]]
[[1]]$membership
[1] 1 1 2 2 2 3 1 3 3 4 4
[[2]]$csize
[1] 3 3 3 2
[[3]]$no
[1] 4
[[3]]
[[1]]$membership
[1] 1 2 2 2 2 3 1 3 4 4 4
[[2]]$csize
[1] 2 4 2 3
[[3]]$no
[1] 4
等等
但是,列表中的某些元素具有相同的$no
。例如,对于元素[[1]]
,我有[[1]][[3]]]$no[1]3
;对于元素[[2]]
,我有[[2]][[3]]]$no[1]4
;对于元素[[3]]
,我有[[3]][[3]]]$no[1]4
;对于元素[[4]]
,我有[[4]][[3]]]$no[1]5
如何使用不同的
$no
保留列表中的所有元素?谢谢大家! 也许像下面这样的方法就可以了。首先,创建一个与您的列表结构相同的列表
lst <- lapply(1:3, function(x) list(membership = 1 + x, csize = 2 + x, no = 12 + (x > 1)))
请注意,这类数据集确实需要使用
dput
或以允许我们重新创建的方式发布。使用dput(list)
的输出编辑问题,其中list
是列表的名称。确定!试着写得更好!
inx <- !duplicated(sapply(lst, function(x) x$no))
lst[inx]