在 kdb+ 中使用整数变量和字符串设置保存路径时出现问题
Issue setting up a save path with integer variables and strings in kdb+
我基本上是想保存到 data/${EPOCH_TIME}
:
begin_unix_time: "J"$first system "date +%s"
\t:1 save `data/"string"$"begin_unix_time"
我希望它能保存到 data/1578377178
在这种情况下,您不需要将 first system "date +%s"
转换为 long,因为您要将一个字符串附加到另一个字符串。相反,您可以使用
begin_unix_time:first system "date +%s"
存储一串数字:
q)begin_unix_time
"1578377547"
q)`$"data/",begin_unix_time
`data/1578377547
这里使用comma ,
to join one string to another, then using cast`$
将字符串转换为符号
关键字save正在将全局数据保存到文件中。给定你的文件路径,看起来你正在尝试保存一个名为 1578377547
的全局变量,而 kdb 无法处理纯数字的变量名。
例如,您可能想尝试保存一个名为 a1578377547
的变量。这会将上面的行更改为
q)`$"data/a",begin_unix_time
`data/a1578377547
并且您的保存将正常工作,鉴于全局变量 a1578377547
存在 。因为您直接在将变量保存到的行中从 linux 中获取日期到第二个,所以由于时间不断变化,这可能行不通!
还要注意 timer 系统命令将重复执行 n
次(如 \t:n
中),这意味着同一个变量将在给定第二个的情况下保存多次没有改变。大 n
的时间也可能会发生变化,如果第二次发生变化,您将不会为您尝试保存的全局变量分配任何内容。
我基本上是想保存到 data/${EPOCH_TIME}
:
begin_unix_time: "J"$first system "date +%s"
\t:1 save `data/"string"$"begin_unix_time"
我希望它能保存到 data/1578377178
在这种情况下,您不需要将 first system "date +%s"
转换为 long,因为您要将一个字符串附加到另一个字符串。相反,您可以使用
begin_unix_time:first system "date +%s"
存储一串数字:
q)begin_unix_time
"1578377547"
q)`$"data/",begin_unix_time
`data/1578377547
这里使用comma ,
to join one string to another, then using cast`$
将字符串转换为符号
关键字save正在将全局数据保存到文件中。给定你的文件路径,看起来你正在尝试保存一个名为 1578377547
的全局变量,而 kdb 无法处理纯数字的变量名。
例如,您可能想尝试保存一个名为 a1578377547
的变量。这会将上面的行更改为
q)`$"data/a",begin_unix_time
`data/a1578377547
并且您的保存将正常工作,鉴于全局变量 a1578377547
存在 。因为您直接在将变量保存到的行中从 linux 中获取日期到第二个,所以由于时间不断变化,这可能行不通!
还要注意 timer 系统命令将重复执行 n
次(如 \t:n
中),这意味着同一个变量将在给定第二个的情况下保存多次没有改变。大 n
的时间也可能会发生变化,如果第二次发生变化,您将不会为您尝试保存的全局变量分配任何内容。