以两列的值为条件显示行 - R [重复]

Posted

技术标签:

【中文标题】以两列的值为条件显示行 - R [重复]【英文标题】:Displaying Rows conditional on values of two columns - R [duplicate] 【发布时间】:2021-05-10 22:54:50 【问题描述】:
treat age education black hispanic married nodegree re74 re75
1: 0 23 10 1 0 0 1 0
2: 0 26 12 0 0 0 0 0
3: 0 22 9 1 0 0 1 0
4: 0 18 9 1 0 0 1 0

我试图仅显示 re74==0re75==0 或两者都等于 0 的数据,这意味着我忽略了两者都等于 1 的行。

【问题讨论】:

到目前为止,您尝试过哪些不起作用的方法?关于 SO 已经有很多关于子集数据的问题——哪些还没有奏效? 【参考方案1】:

你可以从dplyr使用filter

library(dplyr)
df %>% filter(re74 == 0 | re75 == 0)

【讨论】:

【参考方案2】:
(¬_¬)df <- data.frame(
...   stringsAsFactors = FALSE,
...              treat = c("1:", "2:", "3:", "4:"),
...                age = c(0L, 0L, 0L, 0L),
...          education = c(23L, 26L, 22L, 18L),
...              black = c(10L, 12L, 9L, 9L),
...           hispanic = c(1L, 0L, 1L, 1L),
...            married = c(0L, 0L, 0L, 0L),
...           nodegree = c(0L, 0L, 0L, 0L),
...               re74 = c(1L, 0L, 1L, 1L),
...               re75 = c(1L, 0L, 0L, 0L)
... )
(¬_¬)df[df$re74==0 |df$re75==0, ]
  treat age education black hispanic married nodegree re74 re75
2    2:   0        26    12        0       0        0    0    0
3    3:   0        22     9        1       0        0    1    0
4    4:   0        18     9        1       0        0    1    0

【讨论】:

你也可以使用subset来选择re74和re75都等于1的行:df2 &lt;- df[!(df$re74 == 1 &amp; df$re75 == 1 ), ]【参考方案3】:

我们可以使用subset

 subset(df, re74 == 0 | re75 == 0)

【讨论】:

以上是关于以两列的值为条件显示行 - R [重复]的主要内容,如果未能解决你的问题,请参考以下文章

R语言怎么按条件删除某些行?

vba代码根据两列条件插入新行

Excel,条件格式,两列比较

在excel中查找两列的组合,一列中有一个条件

根据其他两列的值在 Pandas 中创建一个新列[重复]

基于R中的两列删除重复项[重复]