Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 基于向量重叠从列表中删除元素并将其追加到列表中_R_List_Append_Subset - Fatal编程技术网

R 基于向量重叠从列表中删除元素并将其追加到列表中

R 基于向量重叠从列表中删除元素并将其追加到列表中,r,list,append,subset,R,List,Append,Subset,我有一个大约500个模型对象的列表。这些对象的名称为v1: existing.list <- vector("list", 3) v1 <- names(existing.list) <- c("A", "B", "C") 我首先要删除v1中不在v2中的对象,然后附加到现有的。列出v2中所有新的、唯一的名称。 我可以用一种相当复杂的方式完成第一项任务: rm <- v1[!v1 %in% v2] rm.i <- which(v1 %in% rm) v1 <-

我有一个大约500个模型对象的列表。这些对象的名称为v1:

existing.list <- vector("list", 3)
v1 <- names(existing.list) <- c("A", "B", "C")
我首先要删除v1中不在v2中的对象,然后附加到现有的。列出v2中所有新的、唯一的名称。 我可以用一种相当复杂的方式完成第一项任务:

rm <- v1[!v1 %in% v2]
rm.i <- which(v1 %in% rm)
v1 <- v1[-rm.i]

rm这些是你要找的吗

intersect(v1, v2)
# [1] "B" "C"

setdiff(v2, v1)
# [1] "D"

如果我理解正确,您可以首先获得
v2
中但不在
v1
中的元素名称

tmp <- setdiff(v2, v1) # "D"
结果

existing.list
#$B
#NULL

#$C
#NULL

#$D
#NULL

没错,我在找什么!
tmp <- setdiff(v2, v1) # "D"
existing.list <- c(existing.list[v1 %in% v2], 
                   setNames(vector("list", length(tmp)), tmp))
existing.list
#$B
#NULL

#$C
#NULL

#$D
#NULL