以两列的值为条件显示行 - 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==0
或 re75==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 <- df[!(df$re74 == 1 & df$re75 == 1 ), ]
【参考方案3】:
我们可以使用subset
subset(df, re74 == 0 | re75 == 0)
【讨论】:
以上是关于以两列的值为条件显示行 - R [重复]的主要内容,如果未能解决你的问题,请参考以下文章