Я немного новичок в R, и я столкнулся с точкой, в которой мне нужна помощь. Я полагаю, что пакет reshape может выполнить то, что мне нужно сделать.Ошибка изменения - неверный коэффициент
Вот структура исходного кадра данных:
> str(bruins)
'data.frame': 10 obs. of 6 variables:
$ gameid : Factor w/ 1 level "20090049": 1 1 1 1 1 1 1 1 1 1
$ team : chr "NYI" "BOS" "NYI" "BOS" ...
$ home_ind: chr "V" "H" "V" "H" ...
$ period : Factor w/ 5 levels "1","2","3","4",..: 1 1 2 2 3 3 4 4 5 5
$ goals : int 0 0 3 0 0 3 0 0 3 3
$ shots : int 16 7 9 7 8 12 5 4 38 30
Вот первые несколько строк:
> head(bruins)
gameid team home_ind period goals shots
409 20090049 NYI V 1 0 16
410 20090049 BOS H 1 0 7
411 20090049 NYI V 2 3 9
412 20090049 BOS H 2 0 7
413 20090049 NYI V 3 0 8
414 20090049 BOS H 3 3 12
Я ищу, чтобы создать новый фрейм данных, поворачивающийся на GameID и период , а остальные столбцы суммируют данные для каждой строки home_ind (всего 10 столбцов).
Когда я запускаю следующий код:
b.melt <- melt(bruins, id=c("gameid", "period"), na.rm=TRUE)
Я получаю следующее сообщение об ошибке:
Warning messages:
1: In `[<-.factor`(`*tmp*`, ri, value = c(0L, 0L, 3L, 0L, 0L, 3L, 0L, :
invalid factor level, NAs generated
2: In `[<-.factor`(`*tmp*`, ri, value = c(16L, 7L, 9L, 7L, 8L, 12L, :
invalid factor level, NAs generated
Любая помощь будет очень признателен!
Edit: Это то, что я надеюсь получить реструктурированных данные выглядеть
gameid period vis_team vis_goals vis_shots home_team home_goals home_shots
1 20090049 1 NYI 0 16 BOS 0 7
2 20090049 2 NYI 3 9 BOS 0 7
3 20090049 3 NYI 0 8 BOS 3 12
Как всегда, спасибо за совет hadley. Я не могу понять, что я бы обобщил. Я отредактировал сообщение выше, чтобы подчеркнуть, что я надеюсь, что новый кадр данных будет выглядеть. Раньше я пытался использовать sqldf и почти получил его, но цифра должна быть проще с некоторыми из ваших пакетов. – Btibert3