我正在尝试制作一个条件子集,其中包括邻近区域窗口内的当代元素。例如,给定矩阵 Dat,其中 Species (SP)、Area (AR) 和 Time (TM):
SP AR TM
A 2 2
B 2 2
C 1 4
F 3 2
B 5 3
E 3 2
D 2 1
I 1 4
H 3 2
E 2 4
D 3 5
B 1 2
如何同时检索与物种 A 共生的所有物种,但在相邻区域内(在本例中为 1 和 3)?所需的输出是:
SP AR TM
A 2 2
B 2 2
F 3 2
H 3 2
B 1 2
这是基于物种 A 将在不同区域的数据集中重复出现的假设。我有一个尝试,由用户 thelatemail 从我之前发布的另一个问题(带有相关元素)给出,稍作修改。添加的 X 表示我无法弄清楚的语法部分,这基本上是括号的定义(考虑到它或多或少应该去的地方)。
with(dat,dat[
apply(
sapply(TM[SP=="A"],
function(x) abs(AR)XXXXX),1,any
)
,]
)
任何帮助深表感谢。
这是我试图对大型数据集进行的一组操作的一部分。我将问题分成两个元素,它们有些相关但远非重复。原因是我是 R 初学者,想学习如何自己解释、编写和集成代码。相关问题的链接:Subsetting based on co-occurrence within a time window。如果需要,我可以删除其中一个链接。