【发布时间】:2017-10-09 17:34:40
【问题描述】:
假设我有这个数据集:
data1 = sample(1:250, 250)
data2 = sample(1:250, 250)
data <- data.frame(data1,data2)
如果我想在 'data1' 和 'data2' 中将 'data' 子集化为 30 个值,那么最好的方法是什么?例如,从“数据”中,我想选择 data1= 4 或 12 或 13 或 24 且 data2= 4 或 12 或 13 或 24 且 data2= 4 或 12 或 13 或 24 的所有行。我想要同时满足这两个条件的行是真的。
我是这样写的:
subdata <- subset(data, data1 == 4 |data1 == 12 |data1 == 13 |data1 == 24 & data2 == 4 |data2 == 12 |data2 == 13 |data2 == 24)
但这似乎并不同时满足两个条件,而是一个或另一个。
【问题讨论】:
-
您正在寻找
%in%:接近的应该是dat[dat$data1 %in% c(4, 12, 13) & dat$data2 %in% c(4, 12, 13), ]。只需根据您的确切需求进行调整。不鼓励使用与现有 R 对象相同的名称,因为这会导致混淆。data是现有函数。 -
这就是我要找的!感谢您的帮助。
标签: r