在JMP中使用多个比较进行表更新我有一个大表,有一列均匀的[0,1]随机数。我有另一列将每行归类为属于SLOW或BUSY时间段。我有一个包含21行和3列的第二个表,其中一列对应于SLOW,第二列对应BUSY。这些列包含0-1的bin边缘,分成连续的升序箱。第三列包含一个值。
对于第一个表中每行的第1列中的INPUT值以及Column3中的相应条目(SLOW或BUSY),我首先要选择第二个表中的(SLOW或BUSY)列。然后我需要找到列中的条目(选中缓慢或忙碌) 在第二个表中,下一个条目大于INPUT值。然后我需要在表1中形成一个新列,以包含第二个表中第3列的bin号的值。
在附件中,Table1是第一个“大”表,其中BUSY和SLOW表示忙碌和慢速时段。Traffic_CDF包含两列bin边,第三列包含要添加到Table1中新列的值。
这是一个例子。
表1中的第6项是0.405374并且是BUSY。该值介于表2的BUSY列的第2行和第3行中的条目之间。因此,我想将表2第3列的值'2'输入表1中新列的第6行。
如果有人能帮忙解决这个问题,我将不胜感激
谢谢
谢谢
Re:在JMP中使用多重比较进行表更新试试这个:
dt_1 = Data Table("Table 1");
dt_cdf = Data Table("Traffic_CDF");
dt_1 << New Column("Bin");
for(i = 1, i<= N Row(dt_1), i++,
value = Column(dt_1,"Random No.")[i];
traffic_val = dt_1:Traffic[i];
If(traffic_val == "BUSY",
dt_1:Bin[i]=dt_cdf:Column 3[min(dt_cdf << Get Rows Where(:BUSY >= value))],
dt_1:Bin[i]=dt_cdf:Column 3[min(dt_cdf << Get Rows Where(:SLOW >= value))],
)
);它基本上是通过找到CDF表中第一行,其中bin边缘大于或等于第一个表中的值,并返回该行的“Column 3”中的值。
Re:在JMP中使用多重比较进行表更新您对我的数据文件的观察是正确的。我已经编辑了帖子以更好地解释它,并且还上传了正确描述bin-edge的正确CDF表,而不是我错误上传的PDF。Re:在JMP中使用多重比较进行表更新我错误地上传了PDF表而不是正确的表。我已经替换了第二个表。它现在是一个与bin边缘对应的CDF表。我还试图通过一个我想做的例子来更清楚地解决问题描述。非常感谢您的帮助。我没有查询或JSL的经验,如果它是它需要的。希望它能以某种方式与JMP一起使用。
谢谢
Re:在JMP中使用多重比较进行表更新你好 @ranjan_mitre_or ,
我很困惑你想如何将表1中的随机#与Traffic_PDF中的bin相匹配。 最大的问题是我无法看到Traffic_PDF如何代表垃圾箱。 我希望这些数字对它们有一些排序,以便任何小于或等于最小数字的数字将在bin 1中,bin 2中最小和第二最小数字之间的任何数字等。 Traffic_PDF甚至在第2列中有几个重复的数字。
你能提供任何澄清吗?
例如,表1中的第1行的值为0.966434732312337,Traffic = H.这告诉我应该查看Traffic_PDF的第2列,但是我没有看到如何将表1中的值映射到Traffic_PDF中的“bin” 。