Как разделить данные на столбцы после разделения на «,»?

#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
 

Ответ №1:

Возвращаемое значение «каждый» — это матрица, тип столбца матрицы не может быть строкой, вместо этого вы можете использовать функцию цикла:

 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 a d g
2 b e h
3 c f i

Если эти столбцы увеличить до t, это может быть следующим образом:

 t[`col1`col2`col3]=loop(split{,","},t.val) 
 
ID вэл col1 col2 col3
1 а,б,в a d g
2 d,e,f b e h
3 g,h,i c f i