我想知道一个列表中哪些对象在它们的某一列中具有特定的值。
为了解释我的情况,请运行以下简单示例:
将mtcars拆分成列表
mt_list = split(mtcars, f = mtcars$cyl)
如果我们查看其中一个元素,我们会看到“gear”列
head(mt_list$`4`)
mpg cyl disp hp drat wt qsec vs am gear carb
Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
我想知道在“gear”列中有数值为“4”的元素。因此,它将搜索列表的所有元素,查找“gear”列中的值,如果找到5的值,则列出元素。
期望的输出应该是=“4”“6”,其中可以在列gear中找到值“4”。(不在元素“8”中)
非常感谢任何帮助。
谢谢。
x$gear
(匿名函数调用或lambda函数)更改为x[[grep("^Car\\d+\\.Gear$", names(x))]]
。 - akrun