Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在列表的列中查找特定值_R_Dataframe - Fatal编程技术网

R 在列表的列中查找特定值

R 在列表的列中查找特定值,r,dataframe,R,Dataframe,我试图获取列表中的哪些对象在其列中具有特定值 为了解释我的案例,请运行以下简单示例: mtcars被分成一个列表 如果我们查看其中一个元素,就会看到“齿轮”列 我想知道哪些元素在“齿轮”列中的值为“4”。因此,它将搜索列表中的所有元素,在“gear”列中,如果发现值为5,则列出该元素 所需输出应为=“4”6”,您可以在列齿轮中找到值“4”。(不在要素“8”中) 任何帮助都将不胜感激 谢谢。我们可以循环查看列表,检查“齿轮”列中是否有任何等于4的元素,使用该元素将列表的名称子集 names(mt_

我试图获取列表中的哪些对象在其列中具有特定值

为了解释我的案例,请运行以下简单示例:

mtcars被分成一个列表 如果我们查看其中一个元素,就会看到“齿轮”列 我想知道哪些元素在“齿轮”列中的值为“4”。因此,它将搜索列表中的所有元素,在“gear”列中,如果发现值为5,则列出该元素

所需输出应为=“4”6”,您可以在列齿轮中找到值“4”。(不在要素“8”中)

任何帮助都将不胜感激


谢谢。

我们可以循环查看
列表
,检查“齿轮”列中是否有任何等于4的
元素,使用该元素将
列表的
名称
子集

names(mt_list)[sapply(mt_list, function(x) any(x$gear == 4))]
#[1] "4" "6"

或者使用%
中的
%创建逻辑索引

names(mt_list)[sapply(mt_list, function(x) 4 %in% x$gear)]
#[1] "4" "6"

工作得很好。最后一个问题,如果名称不是“Gear”列而是“Car1.Gear”、“Car2.Gear”、“Car3.Gear”等,那么他们共享“.Gear”谢谢。@在这种情况下,Albert将
x$Gear
(匿名函数调用或lamba函数)更改为
x[[grep(^Car\\d+\\.Gear$”,names(x))]
names(mt_list)[sapply(mt_list, function(x) any(x$gear == 4))]
#[1] "4" "6"
names(mt_list)[sapply(mt_list, function(x) 4 %in% x$gear)]
#[1] "4" "6"