首页 > 解决方案 > 将列表中的特定元素存储到 R 中的选定向量中

问题描述

我的数据: 字符列表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 个子集的向量中。我想同时存储所有子集中的元素。谢谢

标签: r

解决方案


首先,让我们复制您的数据!

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"

推荐阅读