为了账号安全,请及时绑定邮箱和手机立即绑定

如何组合多个条件以使用“OR”对数据帧进行子集化?

如何组合多个条件以使用“OR”对数据帧进行子集化?

跃然一笑 2019-07-25 19:58:02
如何组合多个条件以使用“OR”对数据帧进行子集化?我在R中有一个data.frame。我想在两个不同的列上尝试两种不同的条件,但我希望这些条件具有包容性。因此,我想用“OR”来结合条件。当我想使用“AND”条件时,我已经使用了以下语法,并取得了很多成功。my.data.frame <- data[(data$V1 > 2) & (data$V2 < 4), ]但我不知道如何在上面使用'OR'。
查看完整描述

3 回答

?
www说

TA贡献1775条经验 获得超8个赞

为了完整起见,我们可以使用运算符[和[[:


set.seed(1)

df <- data.frame(v1 = runif(10), v2 = letters[1:10])

几个选项


df[df[1] < 0.5 | df[2] == "g", ] 

df[df[[1]] < 0.5 | df[[2]] == "g", ] 

df[df["v1"] < 0.5 | df["v2"] == "g", ]

df $ name 相当于 df [[“name”,exact = FALSE]]


使用dplyr:


library(dplyr)

filter(df, v1 < 0.5 | v2 == "g")

使用sqldf:


library(sqldf)

sqldf('SELECT *

      FROM df 

      WHERE v1 < 0.5 OR v2 = "g"')

以上选项的输出:


          v1 v2

1 0.26550866  a

2 0.37212390  b

3 0.20168193  e

4 0.94467527  g

5 0.06178627  j


查看完整回答
反对 回复 2019-07-25
  • 3 回答
  • 0 关注
  • 457 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信