r - 如何从列表列表中检索元素及其所在的列表?

标签 r

假设,我有一个列表,如下所示:

> myList
[[1]]
 [1]   0   7  14  21  28  35  42  49  56  63  70  77  84  91  98 105 112 119 126 133 140 147 154 161 168 175 182 189 196 203 210 217

[[2]]
 [1]   1   8  15  22  29  36  43  50  57  64  71  78  85  92  99 106 113 120 127 134 141 148 155 162 169 176 183 190 197 204 211 218

[[3]]
 [1]   2   9  16  23  30  37  44  51  58  65  72  79  86  93 100 107 114 121 128 135 142 149 156 163 170 177 184 191 198 205 212 219

[[4]]
 [1]   3  10  17  24  31  38  45  52  59  66  73  80  87  94 101 108 115 122 129 136 143 150 157 164 171 178 185 192 199 206 213 220

[[5]]
 [1]   4  11  18  25  32  39  46  53  60  67  74  81  88  95 102 109 116 123 130 137 144 151 158 165 172 179 186 193 200 207 214 221

如何在此列表列表中搜索元素并检索它所属的整个列表?

我试过如下:
> myList[grep(7, myList)][[1]]
 [1]   0   7  14  21  28  35  42  49  56  63  70  77  84  91  98 105 112 119 126 133 140 147 154 161 168 175 182 189 196 203 210 217

这个案例看起来是正确的,但是当我在下面的案例中尝试这个时,我得到了错误的结果。
> myList[grep(18, myList)][[1]]
 [1]   0   7  14  21  28  35  42  49  56  63  70  77  84  91  98 105 112 119 126 133 140 147 154 161 168 175 182 189 196 203 210 217

而正确的输出应该是:
[1]   4  11  18  25  32  39  46  53  60  67  74  81  88  95 102 109 116 123 130 137 144 151 158 165 172 179 186 193 200 207 214 221

有没有可能的解决方案?

编辑::
样本列表可以使用--
l <- seq(0, 194)
myList <- list()

for (d in l){
        temp <- intersect(seq(d, max(l), by = 7),l)
        if (any(sapply(myList,function(x) d %in% x)) == FALSE){
            myList <- append(myList, list(temp))
        }
}

最佳答案

可以试试:

myList[sapply(myList, function(x) any(x %in% 7))]

关于r - 如何从列表列表中检索元素及其所在的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56718968/

相关文章:

r - 如何查找一行中第一个非空值的列名

r - 如何为 R 中的情感分析分配不同的分数?

r - 如何用R查找Waldo?

r - test_that 的多重期望

regex - 在字符串中仅两个下划线之间提取数字模式

r - 如何使用ggplot2在R中制作具有透明背景的图形?

r - 在 R 中创建某个矩阵

R Notebook 不显示数据框的代码输出

r - 在R的列中查找具有多个值的所有记录

r - 如何在R中使用twoord.plot()绘制多个图(分面)?