基于多列和多个条件的行选择<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,
我阅读了有关行选择的可用线程,但仍然无法编译公式来完成我需要的(抱歉 - 我仍然非常缺乏经验......)。
我有一个看起来像这样的表:
| 人 | 化合物 | 剂量 | 单位 |
| 史密斯 | 阿司匹林 | 200 | 毫克 |
| 史密斯 | 阿司匹林 | 150 | 毫克 |
| 琼斯 | 加巴喷丁 | 20 | 丑 |
| 琼斯 | 加巴喷丁 | 30 | 丑 |
| 琼斯 | 尼奎尔 | 60 | 毫升 |
| 爱迪生 | 美林 | 600 | 毫克 |
| 爱迪生 | 美林 | 600 | 毫克 |
对于每个人,我需要查看化合物列和每种化合物,然后查看剂量并选择剂量较高的行。 如果一个人使用了两种化合物,我只需要对一种具有多种剂量的化合物进行剂量评估。 所以按照我的方式处理这个表,我应该得到一个新表,如下所示:
| 人 | 化合物 | 剂量 | 单位 |
| 史密斯 | 阿司匹林 | 200 | 毫克 |
| 琼斯 | 加巴喷丁 | 30 | 丑 |
| 琼斯 | 尼奎尔 | 60 | 毫升 |
| 爱迪生 | 美林 | 600 | 毫克 |
有人可以帮忙吗? 将不胜感激!!!!
Re: 基于多列和多个条件的行选择感谢你们!
我尝试了所有三种解决方案 - 并得到了我想要的桌子。
它比我想象的要简单得多——而且我喜欢汇总和制表功能!!
再次感谢
塔尼亚
Re: 基于多列和多个条件的行选择拜伦是正确的。 我有点太快了,忘记了如果两个人按顺序服用相同的化合物,那么我的情况就不会抓住第一个。
这是更正后的公式和数据表。
Selected State( :Compound != :Compound[Row() + 1] | :Person != :Person[Row() + 1] )

这一次,如果化合物或人与下一行不匹配,它会选择该行。
Re: 基于多列和多个条件的行选择我是老式的,我的第一个冲动是使用旧的 Tables > Summary 方法,这与使用 Tabulate 非常相似。
1. 表格 > 摘要
2. 将 Person,然后 Compound 拖到 Group 框中
3. 点击 Dose 然后点击 Statistics 按钮并选择 Max
4. 点击确定
或者作为脚本:
dt = 当前数据表();
dt << 摘要(组(:人,:化合物),最大(:剂量))
迈克尔
Re: 基于多列和多个条件的行选择看起来选择标记行的逻辑可能需要更具体一些?
If( :Person == Lag( :Person, 1 ) & :Compound == Lag( :Compound, 1 ), 0, 1)
尝试针对 Jeff 帖子中的剂量表运行此脚本,然后先运行排序脚本,然后运行子集脚本。
dt=当前数据表();
dt<
By( :Person, :Compound, :Dose ), Order( 升序, 升序, 升序 ));;
dt<
dt << 子集(输出表(“剂量 bw 的子集”),选定的行(0),行([1、3、5、6]),仅选定的列(0));
dt<<新列(“标志”,
数字,标称,格式(“最佳”,12),
公式( If( :Person == Lag( :Person, 1 ) & :Compound == Lag( :Compound, 1 ),
0, 1 ) ));
Re: 基于多列和多个条件的行选择PMroz有很好的解决办法。
这是另一个。
按名称、化合物、(升序)剂量对表格进行排序。
然后创建一个行状态列(列 -> 新列).

并添加一个公式.

公式应该是:
Selected State( :Compound != :Compound[Row() + 1] )
在公式编辑器中,它看起来像这样:

这将选择化合物名称与下一行中的化合物名称不同的任何行。 由于表格按人、化合物和剂量排序,因此这些行将代表每个人的最大剂量。
然后,您可以使用行状态列名称旁边的弹出菜单将这些选择复制到活动行状态区域。

行将被选中,您可以使用表格->子集获取仅包含所选行的新数据表。
我附上了一个数据表来显示这一点。
-杰夫
Re: 基于多列和多个条件的行选择您可以使用表格来做到这一点:
| 人 | 化合物 | 最大限度 |
| 爱迪生 | 美林 | 600 |
| 琼斯 | 加巴喷丁 | 30 |
| 尼奎尔 | 60 |
| 史密斯 | 阿司匹林 | 200 |
点击分析 > 制表(JMP 11) 或表格 > 制表(联合行动计划 10、9、8)
拖人到行的拖放区。
拖化合物就在右边人
拖剂量在之上否
拖最大限度在之上和
点击完毕
单击红色小三角并选择制作成数据表
如果这是一个考虑因素,您可能必须对单位进行标准化。