Новый (в 2014 году) tidyr
пакет также делает это просто, при этом gather()
/ spread()
является слагаемыми для melt
/ cast
.
library(tidyr)
spread(dat1, key = numbers, value = value)
Из github ,
tidyr
- это перерисовкаreshape2
, предназначенная для сопровождения аккуратной структуры данных и работающая рука об руку сmagrittr
иdplyr
, чтобы построить сплошной конвейер для анализа данных.Так же, как
blockquote>reshape2
сделал меньше, чем изменение,tidyr
делает меньше, чемreshape2
. Он разработан специально для сбора данных, а не для общей перестройки, которую делаетreshape2
, или общего преобразования, которое изменилось. В частности, встроенные методы работают только для кадров данных, аtidyr
не содержит полей или агрегации.
В SQL лучше хранить одно значение в столбце, а не список значений, разделенных запятыми. См. Мой ответ на Является ли хранение списка с запятыми в столбце базы данных действительно так плохо?
Вы можете попробовать этот запрос, но он будет ужасно медленным и неэффективным:
SELECT Table1.id, GROUP_CONCAT(Table2.values) AS values
FROM Table1
JOIN Table2 ON FIND_IN_SET(Table2.id, Table1.nos)
GROUP BY Table1.id;
См. функцию FIND_IN_SET () .