dolphindb - 用“,”分割后的数据如何分列?
问题描述
代码如下:
def splitColumns(x)
{
a=split(x,",")
return a
}
each(splitColumns,t[`bid_prices])
发生错误:
each(splitColumns, t["bid_prices"]) => Not allowed to create a matrix with type STRING
解决方案
“each”的返回值是一个矩阵,矩阵的列类型不能是字符串,可以使用循环函数代替:
t=table(1..3 as id,["a,b,c","d,e,f","g,h,i"] as val)
select id,loop(split{,"," },val) as `col1`col2`col3 from t
t的值显示如下:
ID | col1 | col2 | col3 |
---|---|---|---|
1 | 一个 | d | G |
2 | b | e | H |
3 | C | F | 一世 |
如果将这些列增加到 t,则可以如下所示:
t[`col1`col2`col3]=loop(split{,","},t.val)
ID | 值 | col1 | col2 | col3 |
---|---|---|---|---|
1 | a,b,c | 一个 | d | G |
2 | d,e,f | b | e | H |
3 | g,h,我 | C | F | 一世 |