我已經搜索過但無法找到相關答案。搜索和列表的子集列表
的樣本數據:
example.list <- list(list("a",list("b"),list("c")),list("c"))
我想子集包含字母 「C」 的文章:
下面這得到包含字母 「c」 的最後一個索引節點:
check.a <- lapply(example.list, function(x) grep("c",x))
我如何獲得上述索引的列表?或者如何以其他方式獲取列表?
獲取列表C(1,3)有一前述列表中的節點C(1,2)的最後節點的一部分。
編輯:所需的輸出:(像這樣)
[[1]][[3]]
[[1]][[3]][[1]]
[1] "c"
[[2]]
[[2]][[1]]
[1] "c"
但是我需要的是也與提供索引明白,我怎麼能得到嵌套列表的子集?請使用check.a
。
編輯2:
因此,這裏有可能被用來子集相關列表中的節點列表索引:
first.list.index <- which(lapply(lapply(example.list, function(x) grep("c",x)),length)>0)
last.list.index <- unlist(lapply(example.list, function(x) grep("c",x)))
的想法是這樣的:(不工作,只是爲了證明我」米之後)
lapply(list(a=first.list.index,b=last.list.index), function(a,b) example.list[[a]][[b]])
EDIT 3:(LAST EDIT)
的實際數據廁所像這樣的KS:(我希望我與提供的索引解決方案,這就是爲什麼我減少了對這個問題)
[[1]]
[[1]][[1]]
[1] "a"
[[1]][[1]]$data
[[1]][[2]]
[[1]][[2]][[1]]
[1] "b"
[[1]][[1]]$data
[[1]][[3]]
[[1]][[3]][[1]]
[1] "c"
[[1]][[1]]$data
[[2]]
[[2]][[1]]
[1] "c"
[[2]][[1]]$data
對不起,這個爛攤子!
這裏降低dput:
list(list(structure(list(name = "a", data = c("21016954")), .Names = c("name", "data"
)), structure(list(name = "b", data = c("17103795")), .Names = c("name", "data")), structure(list(name = "c",
data = c("38036543")), .Names = c("name", "data"))), list(structure(list(name = "c", data = c("42456597")), .Names = c("name","data"))))
你能顯示你想要的輸出嗎? –
嘗試'rapply(example.list,函數(X)的grep( 「C」,X值= TRUE))' – akrun
嗯...我只是寫了一個很酷的功能,以符合之前所需的輸出。長號... –