Gather/Select 行计算

Gather/Select rows for calculation

我的问题简单得令人尴尬,但同事问了我,我几乎从不使用Excel。在 Mathematica 中,我可以在几秒钟内解决这个问题。让我们假设一个非常简单的排列,由患者 ID、测量年份和值组成:

问题 1:如何创建仅包含第一个测量值的新 table?也就是说,ID 1 是 2014 年的行,ID 2 是 2015 年的行,ID 3 是 2016 年的行。

问题 2: 如何创建一个新的 table,每个 ID 只有一行,并且所有找到的 Values 都与功能类似于 MEDIAN()?也就是说,ID 1 的中位数是 12 和 23,ID 2 的中位数是 32 和 16,ID 3 的中位数是 4。

假设你的 table 是按日期排序的(如图所示),那么第一个问题可以使用 VLOOKUP

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

替换 "1" 新 table 中包含 ID 1 的单元格。

对于问题 2,您可以使用以下公式,再次将 =1 替换为新 table

中包含 ID 1 的单元格
{=MEDIAN(IF(A1:A6=1,C1:C6,""))}

注意,这是数组公式,不要直接输入大括号{},只需按CTRL+SHIFT+ENTER,而不仅仅是在输入公式

ENTER

这是通过创建一个像这样的数组 {12,23,"","",""} 并取这些数字的中位数来实现的。 MEDIAN 忽略字符串,因此根据需要给出 12 和 23 的中位数(ID 1 的示例)