收集/select行进行计算

我的问题尴尬简单,但一位同事问我,我几乎从来没有使用Excel。 在Mathematica中,我可以在几秒钟内解决这个问题。 让我们假设一个非常简单的安排,包括患者ID,测量年份和价值:

在这里输入图像说明

问题1:如何创build仅包含第一次测量的新表格? 也就是说,2014年的ID为1,2015年的ID为2,2016年的ID为3。

问题2:如何创build一个新表,每个ID只有一行,所有find的Values都与MEDIAN()函数一起使用? ID为1的中位数为12和23,ID 2的中位数为32和16,ID 3的中位数为4。

假设你的表是按datesorting的(它在图中),那么第一个问题可以用VLOOKUP来解决

 =VLOOKUP("1",A1:C6,3,0) 

将新表格中的ID 1replace为"1"

对于问题2,可以使用下面的公式,再次用新表中的任何一个单元格包含ID 1replace=1

 {=MEDIAN(IF(A1:A6=1,C1:C6,""))} 

请注意,这是一个数组公式,而不是直接input大括号{} ,而是简单地按下CTRL + SHIFT + ENTER ,而不是input公式

这是通过创build一个这样的数组{12,23,"","",""}并取这些数字的中位数。 MEDIAN忽略string,因此根据需要给出12和23的中位数(例如ID 1)