我的数据:List of characters:https://i.stack.imgur.com/DUS2r.jpg
我想将列表m中上述每个子集的特定元素(例如“ h”,“ k”)存储到单独的向量中 当前使用以下代码:
for (i in m[[1]][[1]]{if(i=="k"){t<-m[[1]][[1]][m[[1]][[1]]==i]}}
我可以为1个子集分别在向量中存储特定元素。我想同时存储所有子集中的元素。 谢谢
答案 0 :(得分:1)
首先,让我们复制您的数据!
a <- list(c("g", "g", "h", "k", "k", "k", "l"))
b <- list(c("g", "h", "k", "k", "k", "l", "g"))
c <- list(c("g", "h", "h", "h", "k", "l", "h"))
m <- append(append(list(a), list(b)), list(c))
> m
[[1]]
[[1]][[1]]
[1] "g" "g" "h" "k" "k" "k" "l"
[[2]]
[[2]][[1]]
[1] "g" "h" "k" "k" "k" "l" "g"
[[3]]
[[3]][[1]]
[1] "g" "h" "h" "h" "k" "l" "h"
现在,要同时存储所有子集中的指定元素,我们可以在您的代码上再添加一个循环:
t <- list()
for (j in 1:length(m)) {
for (i in m[[j]][[1]]){
if(i == "k"){
t[[j]]<-m[[j]][[1]][m[[j]][[1]]==i]
}
}
}
在上述情况下,我们选择“ k”元素,响应为:
> t
[[1]]
[1] "k" "k" "k"
[[2]]
[1] "k" "k" "k"
[[3]]
[1] "k"