如果我们有一个包含csv的文件,那么我们可以使用0读取它: 例如,我们在磁盘上有一个文件x.csv,然后将其转换为表很容易,如下所示
("SFJ";enlist",")0:`:/x.csv
但是,如何才能将一个csv字符串隐藏到表中?
字符串:
"sym,px,vol
GG,10.2,100
AA,11.2,1000"
预期输出:表
sym px vol
"GG" 10.2 100
"AA" 11.2 1000
答案 0 :(得分:3)
可以使用0:而不是文件句柄来传递字符串,并且将正常创建表:
q)s:("sym,px,vol";"GG,10.2,100";"AA,11.2,1000")
q)s
"sym,px,vol"
"GG,10.2,100"
"AA,11.2,1000"
q)("SFJ";enlist",")0:s
sym px vol
-------------
GG 10.2 100
AA 11.2 1000
答案 1 :(得分:2)
如果您需要以编程方式从一个大字符串csv转到Eliot的s
,则根据csv字符串的格式有几种选择。
// \n delimited
s:` vs "sym,px,vol\nGG,10.2,100\nAA,11.2,1000"
// if you know the row and col count.
s:3 3#"," vs "sym,px,vol,GG,10.2,100,AA,11.2,1000"
// if you just know the col count
s:"sym,px,vol,GG,10.2,100,AA,11.2,1000"
f:{[str;noCol]
str:"," vs str;
noRow:`long$(count str)%noCol;
(noRow, noCol)#str
}
f[s;3]
所有这三个输出(“ sym,px,vol”;“ GG,10.2,100”;“ AA,11.2,1000”)