Я отправил этот вопрос, потому что у меня не было ни единой идеи, как решить эту проблему, но после прочтения ваших ответов мне удалось создать решение:
Допустим, team_ts - это мой фрейм данных.
Я извлекаюкаждой строке и отфильтровывать NA.Я перенесу строку в вектор столбца.Имена строк этого нового вектора - это имена игроков, играющих за команду в тот день.
for (l in 1:nrow(teams_ts)) {
df <- t(teams_ts[l, !is.na(teams_ts[l,])])
Затем я создаю вектор с командами, которые присутствуют в новом векторе столбца.Я избавляюсь от первой записи, потому что она представляет день.
df_teams <- names(table(df))[-1]
Для каждой команды я ищу игроков, играющих в этой команде.Это делается с помощью имен строк отфильтрованного вектора столбца.
for (k in 1:length(df_teams)){
temp <- rownames(df)[df == df_teams[k]]
Это создает вектор символов, который я свернул в одну строку.Эта строка с указанием дня и команды хранится в комбинациях игроков данных.
df_temp <- data.frame(names = paste(temp, collapse = ", "),
day = teams_ts$Date[l],
team = df_teams[k])
player_combinations <- rbind(player_combinations, df_temp)
}
}
Теперь я могу ответить на мой вопрос через группу с помощью nrows.:
final <- player_combinations %>% group_by(names) %>%
summarise(n = n())
Вв конце, спасибо за ваш вклад