У меня сложная проблема с фреймом данных, когда я пытаюсь создать новые столбцы / имена столбцов / значения столбцов из существующего фрейма данных, который не отформатирован так, как мне бы хотелось.Данные имеют идентификаторы playerID и playerTypes для 4 разных игроков одновременно и выглядят так:
dput(my.player.data)
structure(list(p_id = c(8470828L, 8478460L, 8470966L, 8475314L,
8476472L, 8476917L, 8475791L, 8470105L, 8476905L, 8474152L, 8470642L,
8479325L, 8475218L, 8471296L, 8476874L, 8477943L, 8477934L, 8473432L
), pType = c("Blocker", "Shooter", "Blocker", "Shooter", "Blocker",
"Hitter", "Blocker", "Shooter", "PlayerID", "PlayerID", "Shooter",
"Hitter", "PlayerID", "Blocker", "Shooter", "Scorer", "Scorer",
"Scorer"), p_id1 = c(8475172L, 8470645L, 8474162L, NA, 8480172L,
8477989L, 8476879L, NA, NA, NA, NA, 8474683L, NA, 8476851L, 8469514L,
8477407L, 8478402L, 8474091L), pType1 = c("Shooter", "Goalie",
"Shooter", NA, "Shooter", "Hittee", "Shooter", NA, NA, NA, NA,
"Hittee", NA, "Shooter", "Goalie", "Assist", "Assist", "Assist"
), p_id2 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, 8475246L, 8471729L, 8477018L), pType2 = c(NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Assist",
"Assist", "Assist"), p_id3 = c(NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, 8475622L, 8471239L, 8469608L), pType3 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Goalie",
"Goalie", "Goalie")), .Names = c("p_id", "pType", "p_id1", "pType1",
"p_id2", "pType2", "p_id3", "pType3"), row.names = c(1L, 5001L,
10001L, 15001L, 20001L, 25001L, 30001L, 35001L, 40001L, 45001L,
50001L, 55001L, 60001L, 65001L, 70001L, 47329L, 46786L, 45551L
), class = "data.frame")
# ignore that the row numbers are 1, 5000, 10000, etc.
head(my.player.data)
p_id pType p_id1 pType1 p_id2 pType2 p_id3 pType3
1 8470828 Blocker 8475172 Shooter NA <NA> NA <NA>
5001 8478460 Shooter 8470645 Goalie NA <NA> NA <NA>
10001 8470966 Blocker 8474162 Shooter NA <NA> NA <NA>
15001 8475314 Shooter NA <NA> NA <NA> NA <NA>
20001 8476472 Blocker 8480172 Shooter NA <NA> NA <NA>
25001 8476917 Hitter 8477989 Hittee NA <NA> NA <NA>
В моих данных только 4 фиксированных числа pTypes в столбцах 4 pType (Blocker, Shooter,Вратарь и т. Д.), И я хотел бы создать столбец для каждого из них со значением в столбце, равным соответствующему идентификатору игрока.
Например, мне бы хотелось что-то похожее на это:
head(better.player.data)
Blocker Shooter Hittee Hitter Assist1 Assist2 Scorer Goalie
1 8470828 8475172 NA NA NA NA NA NA
5001 NA 8478460 NA NA NA NA NA 8470645
10001 8470966 8474162 NA NA NA NA NA NA
15001 NA 8475314 NA NA NA NA NA NA
20001 8476472 8480172 NA NA NA NA NA NA
25001 NA NA 8477989 8476917 NA NA NA NA
Основной крайний случай здесь заключается в том, что Assist1 и Assist2 оба помечены как Assist в my.player.фрейм данных (см. последние 3 строки, которые не показаны в заголовке ()).Я бы хотел, чтобы p_id1 был Assist1, а p_id2 - Assist2 (pType1 и pType2 должны быть единственными 2 столбцами в исходных данных, где значение Assist (не должно быть в pType или pType3)
Любая помощь сэто, как всегда, очень ценится! Спасибо!