首页 > 解决方案 > 用“,”分割后的数据如何分列?

问题描述

代码如下:

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

标签: dolphindb

解决方案


“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 一世

推荐阅读