簡體   English   中英

如何對列表 R 的多個元素進行子集化

[英]How to subset multiple elements of a list R

我正在嘗試從列表中的元素中刪除不需要的值。 下面的示例是我嘗試解決問題的精簡版。 該系統將被制成 shiny 應用程序,因此它需要對輸入向量的任何大小或基數(如下所示 A:B、“組...”、刪除)做出反應,因為這些將是間接結果用戶選擇。

A <- c(35,35,2609,917,0)
B <- c(8,6,9,24,27,35)
C <- c(1,45,91,24)
D <- c(927,38,22,9)
E <- c(6361,7,43)

my.list <- list(A, B, C, D, E)

group1 <- c(1,2)
group2 <- c(3,5)

remove <- c(35, 24, 6361)

my.list[group1] <- my.list[group1] %>% subset(., !.%in% remove)

my.list

###final expected output

my.list

[[1]]
[1] 2609  917    0

[[2]]
[1]  8  6  9 27

[[3]]
[1]  1 45 91 24

[[4]]
[1] 927  38  22   9

[[5]]
[1] 6361    7   43

該解決方案應允許任意數量的輸入組指定列表元素的位置為子集、列表中的任意數量的元素以及要刪除的任意數量的值。 (它不應該依賴於任何固定的會員基數)

謝謝!

my.list[group1] %<>% lapply(function(x) setdiff(x, remove))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM