我有一个大型数据集“totaldata”,其中包含与每只动物相关的多行。其中一些是LactationNo 1读数,其他是LactationNo 2读数。我想从LactationNo 1和LactationNo 2中提取所有具有读数的动物并将它们存储在另一个数据帧“lactboth”中 每行中还有16个不同类型的变量列,我需要在新数据帧中保留这些变量。 我已尝试合并,聚合和%in%,但也许我使用它们不正确,例如。
(lactboth <- totaldata[totaldata$LactationNo %in% c(1,2), ])
动物ID 是 1 列, lactationno 是列 2 。我无法弄清楚如何只选择那些具有LactationNo = 1&amp; 2
的AnimalId还试过
lactboth <- totaldata[ which(totaldata$LactationNo==1 & totaldata$LactationNo ==2), ]
我觉得这应该很简单,但找不到一个完全相同的例子。帮助赞赏!!
答案 0 :(得分:0)
如果我正确理解您的问题,那么您的数据集看起来像这样:
AnimalId LactationNo
1 A 1
2 B 2
3 E 2
4 A 2
5 E 2
并且您想要选择恰好具有哺乳期数1和1的动物。 2(在这个特定的例子中像A一样)。如果是这种情况,那么您只需使用合并:
lactboth <- merge(totaldata[totaldata$LactationNo == 1,],
totaldata[totaldata$LactationNo == 2,],
by.x="AnimalId",
by.y="AnimalId")[,"AnimalId"]