将虚拟变量转换为显示个人被带出的时间的变量

将虚拟变量转换为显示个人被带出的时间的变量

我在 Excel 中有一个数据集,其中的测量值(M)是从不同的个体(ID)在几个时间段(T)内进行的(M1 等于在第 1 个时期进行的测量,M2 等于在第 2 个时期进行的测量,等等)。

一些个体在实验期间被移除。这由虚拟变量表示,该变量指示个体在特定时间段内是否被移除 (Rd)。由于个体在被移除后没有进行测量,因此情况看起来就像这样简化的版本。

ID;T;M;Rd
1;1;M1;0
2;1;M1;0
3;1;M1;1
1;2;M2;0
2;2;M2;1
1;3;M3;0

我需要的是一个变量,它直接告诉我个体在哪个时期被从实验中移除(不同于虚拟变量,它只告诉我一棵树是否在某个时期被移除)。

此外,我第一次尝试写这个问题时不清楚的是,我需要获得在时间段 1(基线测量)的测量结果旁边的个体被移除的时间段的信息。

因此,我想要实现的是如下所示的情况,其中创建了变量 R 来表示在哪个时间段进行测量。

ID;T;M1;R
1;1;M1;0
2;1;M1;2
3;1;M1;1

其中 R= 1 表示个体 3 在第 1 时期被移除,R=2 表示个体 2 在第 2 时期被移除,而 R=0 表示个体 1 未被移除。所有这些信息都位于 M1 旁边。

我之所以需要这个数据设置是因为我需要对这些个体的发展进行建模(从基线测量,M1)并将这个建模的发展与实验中的实际发展进行比较。

因此,为了尽可能准确地模拟这种发展,我需要第一次测量(基线测量),并且在此基线测量之后,还需要有关何时将个体带出的信息。

因此,我无法简单地过滤数据,因为有关个人何时被移除的大部分信息属于在其他时期进行的测量。

Excel 中是否有任何函数可以为我做到这一点(从 Rd 转换为 R)?

非常感谢您的帮助!很抱歉一开始一切都不太清楚。

亲切的问候

迪特列夫

答案1

感谢 Ditlev 的澄清。

要在第一行显示结果,需要 INDIRECT() 引用。此外,为了让持续时间最长的个体的结果为 0,IF 函数会检查结果是否是数据的最后一行,如果是,则将其设置为 0。

这个公式可以完成这个任务。

=IF(SUMPRODUCT(MAX(ROW($2:$7)*(A$2:A$7=A2)))=ROWS($2:$7)+1,

0,INDIRECT("B"&SUMPRODUCT(MAX(ROW($2:$7)*(A$2:A$7=A2)))))

这假设您的数据表从 A1 开始。公式进入 D2 并仅填充到第一次试验的末尾。当然,您应该更改 $2:$7 范围以引用整个数据表。祝你好运。

结果如下所示。

在此处输入图片描述

相关内容