将数据集与不相同的时间戳相关联我是JMP的新手。我确定我的问题很常见,但我不知道寻找帮助的正确条款。
我进行了一项实验,其中手动收集数据随机时间点。
为了更好地说明我的数据类型,我在下面做了一个示例表。假设我看到结果2存在问题,所以我想看看结果2和结果1之间以及结果2和结果3之间是否存在相关性。
这些数字是完全弥补的,但是你会发现,一般来说,数据不是在同一时间点收集的(但有时它们是)。数据集的大小不同。
| 时间 | 结果1 | 结果2 | 结果3 |
01:00 | 2000 | | |
| 02:00 | 5200 | | |
| 03:14 | 5000 | | |
| 04:00 | 5100 | | |
05:23 | 5200 | | |
| 06:00 | 5300 | | |
| 07:52 | 5000 | | |
| 01:15 | | 12 | |
| 04:23 | | 16 | |
| 06:00 | | 22 | |
| 01:17 | | | 345 |
| 02:34 | | | 345 |
| 02:50 | | | 347 |
| 04:23 | | | 347 |
| 05:53 | | | 342 |
| 08:23 | | | 235 |
| | | | |
我已经能够将时间转换为日期时间,因为我的数据跨越了多天(示例表中未显示)。我不知道最好的办法。 如果我的数据集很小,我会尝试将结果2和3与结果1的最近数据集匹配。比如说,匹配结果1的1:00和结果2的1:15以及结果3的1:17。
但我有很多数据(几千个数据点左右)。我只需要全面了解相关的内容和不相关的内容。我不需要保持数据的原始格式,我不需要对小的差异进行调整(因此,1:1与1:15与1:17相关)。我只需要能够循环通过许多不同的变量并确定...... 是有相关性,或者没有相关性。
谢谢!
Re:将数据集与不相同的时间戳相关联非常感谢!Re:将数据集与不相同的时间戳相关联以下是解决您提出的问题的一种方法的简单示例
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
colNamesList = dt << get column names( numeric, continuous );
dtSum = dt << Summary(
Mean( Eval( colNamesList ) ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 )
);
有关方法和函数的文档可在“脚本指南”和“脚本索引”中找到
帮助==>图书==>脚本指南
帮助==>脚本索引
Re:将数据集与不相同的时间戳相关联那太棒了。这正是我所需要的。非常感谢。
我还有一个问题...... 对于脚本来创建摘要表,如果我只有几列,我可以输入列名(例如“结果2”)。如果我有100个具有各种名称的列需要合并到数据表中,我该怎么办?
谢谢!Re:将数据集与不相同的时间戳相关联要“匹配”数据,应该有一些匹配的上下文。根据您的描述,您似乎想要按最近的小时匹配。如果是这种情况,那么你可以创建一个新列,我将其称为Rounded Hour。
Round( :Time / (60 * 60), 0 ) * (60 * 60)
然后你可以使用表汇总来获得结果,请求平均值,或者最小值或最大值,因为应该只有一个,
Data Table( "Example" ) << Summary(
Group( :Round Hour ),
Mean( :Result 1 ),
Mean( :Result 2 ),
Mean( :Result 3 ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
Link to original data table( 0 )
)
但是,根据您的补充数据,这将是一个问题。对于结果3,你有一个2:34的读数,它将会转到3:00,而另一个读数将在2:50转到3:00。 这会发生什么?你会如何解决这个问题?
如果它需要更多逻辑,例如,“如果2个结果在同一个小时,分配最接近那个小时,如果没有分配到前一个小时,将另一个分配到前一个小时”和类似的规则,那么脚本将需要。