【问题标题】:Remove row with condition in R在R中删除有条件的行
【发布时间】:2020-04-07 13:15:32
【问题描述】:

我有一个数据框,例如:

Col1 Col2 Col3
G1 0 1
G2 1 0
G3 2 1
G4 2 0
G5 0 2
G6 3 4

如果出现以下情况,我想删除行:

  • Col2 和 Col3 之和为 1
  • Col2 或 Col3 包含一个 0 值。

我应该得到:

Col1 Col2 Col3
G3 2 1
G6 3 4

【问题讨论】:

  • 这篇文章可能会有所帮助:r-bloggers.com/…
  • Col1 是什么类?它看起来像一个字符,而不是一个数字。您将如何使用Col2 添加它?
  • 如何计算 Col1 的总和?它是一个字符,应该是数字。你是不是在尝试做其他事情。请澄清。
  • 很抱歉是 col2

标签: r


【解决方案1】:

您可以使用subset 并包含条件。

subset(df, Col2 != 0 & Col3 != 0 & (Col2 + Col3) != (1- Col2))
#In this case this gives the same answer
#subset(df, Col2 != 0 & Col3 != 0)

#  Col1 Col2 Col3
#3   G3    2    1
#6   G6    3    4

或者在dplyr::filter中使用它

library(dplyr)
df %>% filter(Col2 != 0 & Col3 != 0 & (Col2 + Col3) != (1- Col2))

数据

df <- structure(list(Col1 = structure(1:6, .Label = c("G1", "G2", "G3", 
"G4", "G5", "G6"), class = "factor"), Col2 = c(0L, 1L, 2L, 2L, 
0L, 3L), Col3 = c(1L, 0L, 1L, 0L, 2L, 4L)), class = "data.frame", 
row.names = c(NA, -6L))

【讨论】:

    猜你喜欢
    • 2015-08-31
    • 2021-06-09
    • 2021-10-23
    • 1970-01-01
    • 2014-05-04
    • 2020-08-11
    • 2012-06-05
    • 2021-11-25
    • 2022-01-23
    相关资源
    最近更新 更多