#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 |