使用R的条件过滤

使用R的条件过滤,r,R,考虑以下给定的数据帧 示例数据帧 执行筛选的代码 上面的代码将为我提供一个具有单列和单行的数据帧 我想执行一个条件过滤器,如果不存在某种类型,它应该考虑名称为NUL/NA。< /P> 范例 而不是抛出错误。任何输入都会非常有用。DPLYR或任何其他方法都值得注意。以下是一种基本的R方法: name <- df[df$Name == "D", "Name"] ifelse(identical(name, character(0)), NA, name) [1] NA 下面是一个基本的R方

考虑以下给定的数据帧

示例数据帧

执行筛选的代码

上面的代码将为我提供一个具有单列和单行的数据帧

我想执行一个条件过滤器,如果不存在某种类型,它应该考虑名称为NUL/NA。< /P> 范例


而不是抛出错误。任何输入都会非常有用。DPLYR或任何其他方法都值得注意。

以下是一种基本的R方法:

name <- df[df$Name == "D", "Name"]
ifelse(identical(name, character(0)), NA, name)

[1] NA

下面是一个基本的R方法:

name <- df[df$Name == "D", "Name"]
ifelse(identical(name, character(0)), NA, name)

[1] NA
从tidyr获得完整信息的方法是:

library(dplyr)
library(tidyr)

df1 %>% 
  complete(Type = LETTERS) %>%  # Specify which Types you'd expect, other values are filled with NA
  filter(Type == 'D') %>% 
  select(Name)
# A tibble: 1 x 1
#   Name 
#   <fct>
# 1 NA 
从tidyr获得完整信息的方法是:

library(dplyr)
library(tidyr)

df1 %>% 
  complete(Type = LETTERS) %>%  # Specify which Types you'd expect, other values are filled with NA
  filter(Type == 'D') %>% 
  select(Name)
# A tibble: 1 x 1
#   Name 
#   <fct>
# 1 NA 
df <- data.frame(Name=c("EF", "GH", "VB"), 
                Age=c(50, 60, 70), 
                Type=c("A", "B", "C"),
                stringsAsFactors=FALSE)
library(dplyr)
library(tidyr)

df1 %>% 
  complete(Type = LETTERS) %>%  # Specify which Types you'd expect, other values are filled with NA
  filter(Type == 'D') %>% 
  select(Name)
# A tibble: 1 x 1
#   Name 
#   <fct>
# 1 NA