I unfortunately discovered ZeroColon late! it would have saved me a lot of time
url:“http://download.finance.yahoo.com/d/quotes.csv?s=FTR+CTL+LVLT+T+VZ&f=sr”
a:.Q.hg`$url
a1:“s,pe\n”,a
t:(“SS”;enlist",")0:a1
q)t
s pe
----------
FTR N/A
CTL 14.43
LVLT 5.58
T 19.70
VZ 15.26
Here is my code for converting a yahoo csv into a q table.
Let’s assume that ZeroColon doesn’t exist, I still feel that my conversion from g to h isn’t optimal.
any pointers?
// here was my original attempt
q)url:“http://download.finance.yahoo.com/d/quotes.csv?s=FTR+CTL+LVLT+T+VZ&f=sr”
q)a:.Q.hq`:url
q)a
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; background-color: #ffffff}span.s1 {font-variant-ligatures: no-common-ligatures}
“"FTR",N/A\n"CTL",14.43\n"LVLT",5.58\n"T",19.70\n"VZ",15.26\n”
q)b:“\n” vs a / return list of strings (delimited by \n)
q)b
“"FTR",N/A”
“"CTL",14.43”
“"LVLT",5.58”
“"T",19.70”
“"VZ",15.26”
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; background-color: #ffffff}span.s1 {font-variant-ligatures: no-common-ligatures}
“”
q)c:-1_b / drop the last empty string
q)c
“"FTR",N/A”
“"CTL",14.43”
“"LVLT",5.58”
“"T",19.70”
“"VZ",15.26”
q)d:{ssr[x;“"”;“”]} each c / remove "
q)d
“FTR,N/A”
“CTL,14.43”
“LVLT,5.58”
“T,19.70”
“VZ,15.26”
q)e:{ssr[x;“N/A”;“0”]} each d / remove N/A
q)e
“FTR,0”
“CTL,14.43”
“LVLT,5.58”
“T,19.70”
"VZ,15.26
q)f:{“,” vs x} each e
q)f
“FTR” ,“0”
“CTL” “14.43”
“LVLT” “5.58”
,“T” “19.70”
“VZ” “15.26”
q)g:{“S”$x} each f
q)g
FTR 0
CTL 14.43
LVLT 5.58
T 19.70
VZ 15.26
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; background-color: #ffffff}span.s1 {font-variant-ligatures: no-common-ligatures}
q)h:flip g
q)h
FTR CTL LVLT T VZ
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; background-color: #ffffff}span.s1 {font-variant-ligatures: no-common-ligatures}
0 14.43 5.58 19.70 15.26
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; background-color: #ffffff}span.s1 {font-variant-ligatures: no-common-ligatures}
q)t:flip s
pe!(h 0 ; h 1)
q)t
s pe
----------
FTR 0
CTL 14.43
LVLT 5.58
T 19.70
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; background-color: #ffffff}span.s1 {font-variant-ligatures: no-common-ligatures}
VZ 15.26
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; background-color: #ffffff}span.s1 {font-variant-ligatures: no-common-ligatures} p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; background-color: #ffffff}span.s1 {font-variant-ligatures: no-common-ligatures} p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; background-color: #ffffff}span.s1 {font-variant-ligatures: no-common-ligatures} p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; background-color: #ffffff}span.s1 {font-variant-ligatures: no-common-ligatures} p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; background-color: #ffffff}span.s1 {font-variant-ligatures: no-common-ligatures} p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; background-color: #ffffff}span.s1 {font-variant-ligatures: no-common-ligatures} p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; background-color: #ffffff}span.s1 {font-variant-ligatures: no-common-ligatures}