绘制一列精度浮点值
Plotting a column of precision floating point values
我有一个数据序列,我已将其修改为以下内容:
load 'tables/csv'
load 'graphics/plot'
x =: readcsv 'table_ctl.csv'
dat =: 4 {::|:x
dat
有问题的数据正在拉取第四列,已将数组的以下序列转置。以下是该列前五个值的示例。
13.5598 13.6815 14.027 14.132 14.0104
然而 运行:
plot dat
我收到以下错误:
|option not found: 13.5598: signal
| signal'option not found: ',j
这个错误是由于浮点值的精度造成的吗?
谢谢。
您在传递要绘制的框列表时收到此错误,并且绘图期望其中一些框包含要绘制的数据,而其他一些框包含控制数据。 13.5598
不是绘图的有效选项。
fread 'table_ctl.csv'
a,b,0,1,13.5598
a,b,0,1,13.6815
a,b,0,1,14.027
a,b,0,1,14.132
a,b,0,1,14.0104
4 {::|: readcsv 'table_ctl.csv'
┌───────┬───────┬──────┬──────┬───────┐
│13.5598│13.6815│14.027│14.132│14.0104│
└───────┴───────┴──────┴──────┴───────┘
可能您认为 {::
会自动拆箱,但只有当您给它的路径指定一个箱子时它才会这样做。请参阅 Fetch 处的顶部文本。另一个问题是这些盒子的内容是字符串,而不是浮点数:
$ > 4 {::|: readcsv 'table_ctl.csv'
5 7
|."1 > 4 {::|: readcsv 'table_ctl.csv'
8955.31
5186.31
720.41
231.41
4010.41
因此,要绘制您的数字:plot > makenum 4 {::|: readcsv 'table_ctl.csv'
从框列表开始,然后将每个框变成一个浮点框,然后拆开列表并绘制它。 makenum
带有 readcsv
,在这种情况下就像一个聪明的 ". each
,因为它会单独留下 non-numeric 个框。
还有一些设置需要设置,但 jd 可能也适用于此:
fread 'table_ctl.cdefs'
1 label byte 1
2 name varbyte
3 enabled boolean
4 weight int
5 score float
options , LF NO \ 0 iso8601-char
load 'data/jd'
!!! Jd key: non-commercial use only!
jdwelcome_jd_ NB. run this sentence for important information
jdadminnew'temp'
CSVFOLDER=:'/path/to/csv/directory'
jd'csvrd table_ctl.csv data'
jd'info schema'
┌─────┬───────┬───────┬─────┐
│table│column │type │shape│
├─────┼───────┼───────┼─────┤
│data │label │byte │1 │
│data │name │varbyte│_ │
│data │enabled│boolean│_ │
│data │weight │int │_ │
│data │score │float │_ │
└─────┴───────┴───────┴─────┘
jd'get data score'
13.5598 13.6815 14.027 14.132 14.0104
我有一个数据序列,我已将其修改为以下内容:
load 'tables/csv'
load 'graphics/plot'
x =: readcsv 'table_ctl.csv'
dat =: 4 {::|:x
dat
有问题的数据正在拉取第四列,已将数组的以下序列转置。以下是该列前五个值的示例。
13.5598 13.6815 14.027 14.132 14.0104
然而 运行:
plot dat
我收到以下错误:
|option not found: 13.5598: signal
| signal'option not found: ',j
这个错误是由于浮点值的精度造成的吗? 谢谢。
您在传递要绘制的框列表时收到此错误,并且绘图期望其中一些框包含要绘制的数据,而其他一些框包含控制数据。 13.5598
不是绘图的有效选项。
fread 'table_ctl.csv'
a,b,0,1,13.5598
a,b,0,1,13.6815
a,b,0,1,14.027
a,b,0,1,14.132
a,b,0,1,14.0104
4 {::|: readcsv 'table_ctl.csv'
┌───────┬───────┬──────┬──────┬───────┐
│13.5598│13.6815│14.027│14.132│14.0104│
└───────┴───────┴──────┴──────┴───────┘
可能您认为 {::
会自动拆箱,但只有当您给它的路径指定一个箱子时它才会这样做。请参阅 Fetch 处的顶部文本。另一个问题是这些盒子的内容是字符串,而不是浮点数:
$ > 4 {::|: readcsv 'table_ctl.csv'
5 7
|."1 > 4 {::|: readcsv 'table_ctl.csv'
8955.31
5186.31
720.41
231.41
4010.41
因此,要绘制您的数字:plot > makenum 4 {::|: readcsv 'table_ctl.csv'
从框列表开始,然后将每个框变成一个浮点框,然后拆开列表并绘制它。 makenum
带有 readcsv
,在这种情况下就像一个聪明的 ". each
,因为它会单独留下 non-numeric 个框。
还有一些设置需要设置,但 jd 可能也适用于此:
fread 'table_ctl.cdefs'
1 label byte 1
2 name varbyte
3 enabled boolean
4 weight int
5 score float
options , LF NO \ 0 iso8601-char
load 'data/jd'
!!! Jd key: non-commercial use only!
jdwelcome_jd_ NB. run this sentence for important information
jdadminnew'temp'
CSVFOLDER=:'/path/to/csv/directory'
jd'csvrd table_ctl.csv data'
jd'info schema'
┌─────┬───────┬───────┬─────┐
│table│column │type │shape│
├─────┼───────┼───────┼─────┤
│data │label │byte │1 │
│data │name │varbyte│_ │
│data │enabled│boolean│_ │
│data │weight │int │_ │
│data │score │float │_ │
└─────┴───────┴───────┴─────┘
jd'get data score'
13.5598 13.6815 14.027 14.132 14.0104