【问题标题】:In r select only individuals (column "names") that has rows with yes and no in another column在 r 中仅选择在另一列中具有是和否的行的个人(列“名称”)
【发布时间】:2021-10-04 08:52:39
【问题描述】:

我有一个包含 3 列的数据框。第一列是观察日期。第二个是信号器ID。第三列是观察期间是否有小鸡在场(是/否)。如何对数据框进行子集化以使所有行仅包含那些观察到是和否的个人?

例如,如果我运行

> table(presence.data$chick.present, presence.data$signaller.ID)

我得到以下信息:

     ID. 1             ID. 2          ID. 3          ID. 4
no   48                 31             1              33   
yes  0                  0              0              2  

因此,理想情况下,我想找到一种方法对数据进行子集化,以仅包含信号器“ID. 4”的所有行(目前唯一一个观察到小鸡存在的“是”和“否”。

谢谢!

【问题讨论】:

  • 你的意思是这样的:x <- as.data.frame(table(presence.data$chick.present, presence.data$signaller.ID))x[4] 吗?
  • 你想要做的是subsettingdata.frame
  • 您正在寻找带有 group_by() 的 filter()

标签: r subset


【解决方案1】:

您可以将filter()any() 一起用于这两种情况(chick.present==yes 和chick.present==no)

library(dplyr)

presence.data %>% group_by(signaller.ID) %>% filter(any(chick.present=='yes') & any(chick.present=='no'))

【讨论】:

猜你喜欢
  • 2014-12-15
  • 1970-01-01
  • 1970-01-01
  • 2019-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多