我有一个与样本关联的观测列表。我想要删除在特定样本对中出现的相同观测。
数据示例:
所以,想法是根据字母A和B将样本分组成对,然后对于每个这样的对,删除任何具有匹配观测值的行。
在上面的例子中,只有来自样本2A和样本2B的观测值会被排除,因为它们来自同一个样本,即在两个不同的场合(样本2A和样本2B)采样的样本2。输出应该是这样的:
如果可以使用DPLYR来实现这个目标,那将会非常有用,因为我正在努力提高我的熟练度。
我想象一下,使用group_by()按样本名称对数据进行分组,然后使用filter()可能会起作用,但我不确定如何处理基于正则表达式或字符串的首次配对的嵌套条件,然后通过查找行之间匹配值来进行过滤。
提前感谢您的帮助。
数据示例:
sample observation
sample1A 5
sample1B 7
sample2A 10
sample2B 10
sample3A 10
sample3B 5
所以,想法是根据字母A和B将样本分组成对,然后对于每个这样的对,删除任何具有匹配观测值的行。
在上面的例子中,只有来自样本2A和样本2B的观测值会被排除,因为它们来自同一个样本,即在两个不同的场合(样本2A和样本2B)采样的样本2。输出应该是这样的:
sample observation
sample1A 5
sample1B 7
sample3A 10
sample3B 5
如果可以使用DPLYR来实现这个目标,那将会非常有用,因为我正在努力提高我的熟练度。
我想象一下,使用group_by()按样本名称对数据进行分组,然后使用filter()可能会起作用,但我不确定如何处理基于正则表达式或字符串的首次配对的嵌套条件,然后通过查找行之间匹配值来进行过滤。
提前感谢您的帮助。
dat[with(dat, !(duplicated(sampleNum & observation) | duplicated(sampleNum & observation, FromLast=TRUE)),]
。 - lmo