Я пытаюсь преобразовать данные, выглядит следующим образом:dcast производит чрезвычайно широкий dataframe
> long.data
date ID average stat
5128 20020510 UKM66 42.51919 minimum
2267 20020510 PL622 61.31768 average
265 20020503 DE71E 42.17819 maximum
где average
определяется комбинацией date
, ID
и stat
, в чем-то, что выглядит следующим образом:
> wide.data
date ID minimum average maximum
1 20020510 UKM66 50 62 70
2 20020510 PL622 52 60 63
3 20020510 DE71E 49 67 80
насколько я могу судить, dcast
бы отличный способ сделать это, но когда я пытаюсь следующее:
> wide.data <- dcast(long.data, date + ID + stat ~ average)
я получаю предупреждение и чудовищно длинный dataframe:
Using stat as value column: use value.var to override.
> ncol(wide.data)
[1] 4577
Кажется, что R дает мне столбец для каждого уникального значения наблюдения. Я прочитал документацию по reshape2
и dcast
, но я все еще просто не понимаю. Что здесь происходит?
Вы хотите 'dcast (long.data, date + ID ~ stat, value.var =" average ")'. 'dcast' предоставит вам новый столбец для каждого уникального значения (или комбинации значений для нескольких переменных) переменной справа от' ~ '. – eipi10
Мне трудно понять, что на самом деле рассчитывается. В каком столбце указаны значения, из которых должны быть получены «средний», «максимальный» и «минимальный»? И почему этот пример данных дает результат, который предлагается в качестве желаемого результата? –
Среднее значение в long.data содержит все значения. Я признаю, что сбивает с толку, что стат иногда содержит «средний». –