r - 将某些行保留在具有条件的数据框中

标签 r if-statement dplyr

我在 R 中有一个数据框,我想为其删除符合特定条件的特定行。我该怎么做?

我尝试过使用 dplyrifelse 但我的代码没有给出正确的答案

check8 <- distinct(df5,prod,.keep_all = TRUE)

没用!给出整个数据集

输入是:

check1 <- data.frame(ID = c(1,1,2,2,2,3,4), 
                     prod = c("R","T","R","T",NA,"T","R"), 
                     bad = c(0,0,0,1,0,1,0))
  #     ID prod bad
#    1  1    R   0
#    2  1    T   0
#    3  2    R   0
#    4  2    T   1
#    5  2 <NA>   0
#    6  3    T   1
#    7  4    R   0

预期输出:

data.frame(ID = c(1,2,3,4), 
           prod = c("R","R","T","R"), 
           bad = c(0,0,1,0))


    #  ID prod bad
   # 1  1    R   0
   # 2  2    R   0
   # 3  3    T   1
   # 4  4    R   0

我想要这样的输出,对于同时存在 prod 或 NA 的 ID,只保留带有 prod R 的行,但如果只有一个 prod 存在尽管有 prod,但仍保持该行。

最佳答案

使用 dplyr 我们可以使用 filter 来选择 prod == "R" 的行,或者如果组中只有一行, 选择该行。

library(dplyr)

check1 %>%
  group_by(ID) %>%
  filter(prod == "R" | n() == 1)

#     ID prod    bad
#  <dbl> <fct> <dbl>
#1     1 R         0
#2     2 R         0
#3     3 T         1
#4     4 R         0

关于r - 将某些行保留在具有条件的数据框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55999890/

相关文章:

r - 使用现有绘图创建 Shiny 的下拉菜单

c - 我的模拟不运行或不循环

.net - 在asp.net中使用if与eval ("")

r - 改变列并修改小标题中的列名

r - 根据列中两行之间的距离选择因素

r - 自定义 ML 函数不起作用 : undefined columns selected

R:with()函数内的 Debug模式

r - 将自定义缩放模型应用于数据框?

r - 从R中的整个数据帧中删除空格

debugging - "if' VS "else if"