使用范围时,stats 命令不会 return 期望值

stats command don't return expected value when using ranges

我在使用范围时使用 stats 命令有一些奇怪的行为。 考虑以下简单示例。

$Data<<EOD
 1    10
 2    20
 3    30
 4    40
 5    50
 6    60
 7    70
 8    80
 9    90
10   100
EOD

stats [1:5] $Data u 1   nooutput 
print STATS_records # Result: 10; Expected: 5

stats [1:5] $Data u 1:2 nooutput
print STATS_records # It works fine

为什么第一个 stats 命令没有 return 预期值? 这会影响所有 stats 结果。这是一个错误吗?我错过了什么吗?我正在使用 version 5.2 patchlevel 8.

我试图解释这种行为:

如果你这样做

stats [1:5] $Data u 1:2 nooutput

1 对应于 x,列 2 对应于 y。 使用 [1:5],您将 x 限制为 1 到 5,因此有 5 条记录。

如果你这样做

stats [1:5] $Data u 1 nooutput

1 是 "kind of" y,伪列 0 是 "kind of" x, 但是,您限制了 x 而不是伪列 0,因此有 10 条记录。

所以,如果你这样做

stats [1:5] $Data u 1:1 nooutput

您将在 1 列上获得预期的结果和预期的统计数据。

要查看所有 STATS 值,请键入 show var STATS

但我只是在猜测...我确定@Ethan 可以告诉。