【发布时间】:2016-11-19 12:56:37
【问题描述】:
我一直试图在 Stackoverflow 上找到类似的问题,但所有类似的问题仍然无法回答我的问题或解决此问题。
我有这个数据集,使用which() 和其他函数,我试图找到两个条件都为真的id。但是,我不知道如何让它在 R 中工作。它要么返回所有 id,要么返回我迄今为止尝试过的空向量。
所以我从我的数据中抽取了 20 个观察结果,仅针对这个问题(实际数据框很大),以生成一个模拟样本来传达我的问题并在 Stackoverflow 上解决它,但我会尝试。
我有这个数据框,我想要严格包含附件 V 和附件 R 的 ID。
df
id attachment
271 1000534 V
372 1000547 V
1012 1000530 R
1568 1000539 R
1095 1000530 R
185 1000534 V
1476 1000539 R
903 1000530 R
309 1000547 V
1010 1000530 R
333 1000547 V
1094 1000530 R
1334 1000539 R
340 1000547 V
730 1000530 R
22 1000067 V
1308 1000533 R
799 1000530 R
138 1000533 V
1161 1000530 R
所以,正如我们所见,id 1000533 同时具有 V 和 R,所以我想要捕获的 id 两者兼有,我尝试了以下选项:
VR <- df[(df$attachment == 'V') & (df$attachment == 'R'),]
VR <- df[(df$attachment == 'V') && (df$attachment == 'R'),]
VR <- df[which(df$attachment == 'V') && which(df$attachment == 'R'),]
VR <- df[which(df$attachment == 'V') & which(df$attachment == 'R'),]
但它们返回一个包含所有 20 个值的数据框。当我打电话时
unique(VR$id)
它从初始数据帧返回所有 id。使用我的实际数据,它会返回一个空数据框,具体取决于我尝试的上述哪种子集尝试,但它永远不会返回我想要的 - 一个只有包含附件 V 和附件 R 的 id(或观察值)的数据框。
我做错了什么以及如何仅提取同时具有 V 和 R 的那些 id?
【问题讨论】:
标签: r conditional subset