【问题标题】:Subset of data with certain values of one column and excludes one value of another column [duplicate]具有一列的某些值并排除另一列的一个值的数据子集[重复]
【发布时间】:2021-11-21 02:35:54
【问题描述】:

我需要创建我的数据集的一个子集,其中仅包括疟疾 = 0 和 1(不是 2)的鸟类,并从模型中排除 IIWI。

我试过了:

datPox2 <- subset(datPox, Malaria = 0 & 1)
datPox2

但这并没有消除 Malaria 列中的 2。我也不知道如何排除一个物种而留下其他三个。

这是我的数据示例:

Site    Species Bandno  Date    Sex Age Oldpox  Activepox   Malaria Elev
1   AIN APAP    159174793   7/22/2004   U   H   0   0   2   mid
2   AIN APAP    159174964   7/6/2004    M   H   0   1   2   mid
3   AIN HAAM    165180406   3/1/2002    M   A   0   0   0   mid
4   AIN HAAM    165180406   7/2/2003    M   A   0   0   1   mid
5   AIN JAWE    224018088   6/18/2002   U   H   0   0   2   mid
6   AIN JAWE    224018089   6/18/2002   U   H   0   0   2   mid
7   KUL IIWI    151129162   4/29/1993   M   H   0   0   0   high
8   KUL IIWI    151129162   10/8/1993   M   H   0   0   0   high
9   KUL IIWI    151129162   3/7/1994    M   A   0   0   0   high
10  KUL IIWI    151129162   4/6/1994    M   A   0   0   0   high

【问题讨论】:

  • 语法错误:应该是subset(datPox, Malaria == 0 &amp; Malaria ==1)

标签: r subset


【解决方案1】:

dplyr 版本

library(dplyr)

datPox %>%
  filter(Malaria  != 2)

   Site Species    Bandno      Date Sex Age Oldpox Activepox Malaria Elev
3   AIN    HAAM 165180406  3/1/2002   M   A      0         0       0  mid
4   AIN    HAAM 165180406  7/2/2003   M   A      0         0       1  mid
7   KUL    IIWI 151129162 4/29/1993   M   H      0         0       0 high
8   KUL    IIWI 151129162 10/8/1993   M   H      0         0       0 high
9   KUL    IIWI 151129162  3/7/1994   M   A      0         0       0 high
10  KUL    IIWI 151129162  4/6/1994   M   A      0         0       0 high

基础 R 版本

datPox[datPox$Malaria != 2,]

   Site Species    Bandno      Date Sex Age Oldpox Activepox Malaria Elev
3   AIN    HAAM 165180406  3/1/2002   M   A      0         0       0  mid
4   AIN    HAAM 165180406  7/2/2003   M   A      0         0       1  mid
7   KUL    IIWI 151129162 4/29/1993   M   H      0         0       0 high
8   KUL    IIWI 151129162 10/8/1993   M   H      0         0       0 high
9   KUL    IIWI 151129162  3/7/1994   M   A      0         0       0 high
10  KUL    IIWI 151129162  4/6/1994   M   A      0         0       0 high

排除 IIWI

datPox %>%
  filter(Malaria  != 2, Species != "IIWI")

  Site Species    Bandno     Date Sex Age Oldpox Activepox Malaria Elev
3  AIN    HAAM 165180406 3/1/2002   M   A      0         0       0  mid
4  AIN    HAAM 165180406 7/2/2003   M   A      0         0       1  mid

【讨论】:

  • 完美!谢谢!使用 dplyr 时,是否可以继续使用过滤功能排除 IIWI 物种?
  • @AlisonMeeth 当然。我在上面添加代码。
猜你喜欢
  • 2021-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多