我对 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 和 period 为中心的新数据框,其余列汇总每个 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
任何帮助将不胜感激!
编辑:这就是我希望得到重组数据的样子
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