首页 > 解决方案 > 在 R 中检查数据框中的值

问题描述

以下是我的r代码。我正在尝试检查真实值a = 10是否包含在数据框中。如果它包含在数据帧中,那么我需要计算该数据帧的长度,否则我想分配长度0

假设我正在检查的值是10

k1 = c(1,2,3,5,6) 
k2 = c(10,12,13,15,16,18)  

例如,对于k1集合,我想获得长度0,而k2长度必须是6

我尝试使用以下代码来完成这项工作

library(tidyverse)
map_lgl(k, `%in%`, x = 10) %>% length

为什么它不适用于k1数据集?

标签: rdataframeif-statement

解决方案


你可以用一个简单的ifelse语句来做到这一点——不需要其他任何东西。

a <- 10
ifelse(a %in% k2, length(k2), 0)

[1] 0

您可以包装一个函数并将不同的集合输入:

my_func <- function(x){
ifelse(a %in% x, length(x), 0)
}

my_func(k2)

[1] 6

推荐阅读