如何检查特定元素是否存在于 R 中的数据帧列表中?
How to check whether a specific element exists in a list of dataframes in R?
假设我有以下数据帧列表:
A = list(fruits = data.frame(V1 = c("Apple", "Banana", "Orange")), vegetables = data.frame(V1 = c("cucumber", "lettuce")))
我想知道生菜存在于列表中的“蔬菜”数据框中,但不存在于水果中(可以是 TRUE 或 FALSE 或 0 或 1 输出)
我尝试了以下功能:
map_lgl(A, `%in%`, x = "lettuce") %>% as.integer()
但我得到的输出是 0 0。我还需要输出来表明“蔬菜”是列表中的数据框,其中“生菜”位于
看来我需要以某种方式访问列表的元素,但我不知道如何。
很抱歉,我是 R 的新手。非常感谢您的帮助
尝试使用 sapply
:
sapply(A, function(x) 'lettuce' %in% x$V1)
# fruits vegetables
# FALSE TRUE
获取名称:
names(A)[sapply(A, function(x) 'lettuce' %in% x$V1)]
#[1] "vegetables"
具有purrr
个功能。
library(purrr)
map_lgl(A, ~'lettuce' %in% .x$V1)
# fruits vegetables
# FALSE TRUE
map_int(A, ~'lettuce' %in% .x$V1)
# fruits vegetables
# 0 1
我们可以使用lapply
unlist(lapply(A, function(x) 'lettuce' %in% x$V1))
#fruits vegetables
# FALSE TRUE
假设我有以下数据帧列表:
A = list(fruits = data.frame(V1 = c("Apple", "Banana", "Orange")), vegetables = data.frame(V1 = c("cucumber", "lettuce")))
我想知道生菜存在于列表中的“蔬菜”数据框中,但不存在于水果中(可以是 TRUE 或 FALSE 或 0 或 1 输出)
我尝试了以下功能:
map_lgl(A, `%in%`, x = "lettuce") %>% as.integer()
但我得到的输出是 0 0。我还需要输出来表明“蔬菜”是列表中的数据框,其中“生菜”位于
看来我需要以某种方式访问列表的元素,但我不知道如何。
很抱歉,我是 R 的新手。非常感谢您的帮助
尝试使用 sapply
:
sapply(A, function(x) 'lettuce' %in% x$V1)
# fruits vegetables
# FALSE TRUE
获取名称:
names(A)[sapply(A, function(x) 'lettuce' %in% x$V1)]
#[1] "vegetables"
具有purrr
个功能。
library(purrr)
map_lgl(A, ~'lettuce' %in% .x$V1)
# fruits vegetables
# FALSE TRUE
map_int(A, ~'lettuce' %in% .x$V1)
# fruits vegetables
# 0 1
我们可以使用lapply
unlist(lapply(A, function(x) 'lettuce' %in% x$V1))
#fruits vegetables
# FALSE TRUE