R 不同长度向量列表中的匹配编号
我想在包含不同长度向量的列表中匹配一个数字。我的解决方案(如下)仍然不匹配每个向量的第一项之外的任何内容R 不同长度向量列表中的匹配编号,r,list,match,R,List,Match,我想在包含不同长度向量的列表中匹配一个数字。我的解决方案(如下)仍然不匹配每个向量的第一项之外的任何内容 seq_ <- seq(1:10) list_ <- list(seq_[1:3], seq_[4:7], seq_[8:10]) list_ # [[1]] # [1] 1 2 3 # # [[2]] # [1] 4 5 6 7 # # [[3]] # [1] 8 9 10 在一般情况下,您可能会更喜欢,如 编辑:重写以显示完整的循环值 seq_ <
seq_ <- seq(1:10)
list_ <- list(seq_[1:3], seq_[4:7], seq_[8:10])
list_
# [[1]]
# [1] 1 2 3
#
# [[2]]
# [1] 4 5 6 7
#
# [[3]]
# [1] 8 9 10
在一般情况下,您可能会更喜欢
,如
编辑:重写以显示完整的循环值
seq_ <- seq(1:10)
list_ <- list(seq_[1:3], seq_[4:7], seq_[8:10])
matchlist<-list(length=length(list_))
for( j in 1:length(list_)) {
matchlist[[j]] <- unlist(sapply(seq_, function(k) which(list_[[j]]==k) ))
}
什么是t0
?您希望获得什么输出?请给我们一个例子。如果对于每个i
你想要一个列表(不是一个向量,因为在list\u
中可能有超过1个)它的位置,那么你想要的是:lappy(seq\u,function(i)lappy(list\u,function(elems)match(i,elems))
。关键是:您需要一个嵌套循环,而不能与列表匹配。如果您还需要什么,请尝试清楚地表述出来。@gagolews抱歉,我重新编辑了代码。这对我不起作用。你还忘了一个括号。
seq_ <- seq(1:10)
list_ <- list(seq_[1:3], seq_[4:7], seq_[8:10])
matchlist<-list(length=length(list_))
for( j in 1:length(list_)) {
matchlist[[j]] <- unlist(sapply(seq_, function(k) which(list_[[j]]==k) ))
}