R:如果值不在另一个列表中,则过滤子框架行

js5cn81o  于 2023-09-27  发布在  其他
关注(0)|答案(3)|浏览(106)

我有一个dataframe,结构如下:

Element     Error
1    A           Grid error
2    B           Meteo error
3    C           Gen error
4    D           Blade error

我想过滤它,只保留Error列中的值不在以下列表["Grid error", "Meteo error"]中的行
所以我的预期输出是:

Element     Error
1    C           Gen error
2    D           Blade error
rekjcdws

rekjcdws1#

base R使用subset

subset(data, !Error %in% c("Grid error","Meteo error"))
uoifb46i

uoifb46i2#

您也可以在dplyr中使用filtertidyverse中的包):

example_df <- data.frame(element = c("A", "B", "C", "D"), 
                     Error = c("Grid error", "Meteo error",
                     "Gen error", "Blade error"))

removals <- list("Grid error", "Meteo error")

output_df <- example_df %>%
  filter(!(Error %in% removals))
8zzbczxx

8zzbczxx3#

上面的答案是指向正确方向的指针,函数filterdplyr中。但是!紧挨着向量Error

example_df <-  data.frame(element = c("A", "B", "C", "D"),
               Error = c("Grid error", "Meteo error","Gen error",
                         "Blade error"))
  removals <- list("Grid error", "Meteo error")
  output_df <- df %>%  
    filter(!Error %in% removals)

相关问题