收集/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 1
replace为"1"
。
对于问题2,可以使用下面的公式,再次用新表中的任何一个单元格包含ID 1
replace=1
{=MEDIAN(IF(A1:A6=1,C1:C6,""))}
请注意,这是一个数组公式,而不是直接input大括号{}
,而是简单地按下CTRL + SHIFT + ENTER ,而不是input公式
这是通过创build一个这样的数组{12,23,"","",""}
并取这些数字的中位数。 MEDIAN
忽略string,因此根据需要给出12和23的中位数(例如ID 1)