Замените некоторые значения data.frame на вектор в R - PullRequest
0 голосов
/ 07 декабря 2018

Я снова здесь с новой проблемой R.

По сути, я нахожусь внутри цикла for, и у меня проблемы с самыми последними строками кода.

I 'Вот такой набор данных:

           > head(myDB)
    # A tibble: 6 x 11
      Div   Date  HomeTeam AwayTeam  FTHG  FTAG FTR   Index1     Index2  Index3     Index4

1 I1    20/0… Juventus Fiorent…     2     1 H              0          0            0           0
2 I1    20/0… Roma     Udinese      4     0 H              0          0            0           0
3 I1    21/0… Atalanta Lazio        3     4 A              0          0            0           0
4 I1    21/0… Bologna  Crotone      1     0 H              0          0            0           0
5 I1    21/0… Chievo   Inter        2     0 H              0          0            0           0
6 I1    21/0… Empoli   Sampdor…     0     1 A              0          0            0           0

Да, набор данных о футболе, и вы можете скачать его бесплатно на http://www.football -data.co.uk / italym.php .

Однако я создал несколько индексов для каждого совпадения и поместил их в вектор c

c <- c(HomeTeam, AwayTeam, Val1, Val2, Val3, Val4)

Как я уже говорил, я нахожусь внутри цикла for.

IВ каждом цикле компьютер находит строку, в которой HomeTeam и AwayTeam совпадают с первыми двумя значениями C, а затем помещает оставшиеся значения C (indxes1, indexes2, indexes3, indexes4) в последние 4 столбца.

РЕДАКТИРОВАТЬ: В основном я ищу такой вывод:

> head(myDB)
# A tibble: 6 x 11
  Div   Date  HomeTeam AwayTeam  FTHG  FTAG FTR   Index1     Index2  Index3     Index4

1 I1    20/0… Juventus Fiorent…     2     1 H              0          0            0           0
2 I1    20/0… Roma     Udinese      4     0 H              0          0            0           0
3 I1    21/0… Atalanta Lazio        3     4 A              0          0            0           0
4 I1    21/0… Bologna  Crotone      1     0 H              0          0            0           0
5 I1    21/0… Chievo   Inter        2     0 H              0          0            0           0
6 I1    21/0… Empoli   Sampdor…     0     1 A              Val1          Val2            Val3           Val4

Очевидно, что во всем фрейме данных есть только строка с «комбинацией» HomeTeam и AwayTeam ввектор с.На каждой итерации цикла я меняю HomeTeam и AwayTeam и их значения.

Я хотел бы сделать что-то вроде Join, но я действительно не представляю, что делать.Что вызывает у меня проблемы, так это «проверка» HomeTeam и команды гостей.Спасибо в совете за ответы!

1 Ответ

0 голосов
/ 08 декабря 2018

Я решил квестин сам!Я публикую его, если кому-то еще понадобится помощь.

По сути, я извлек название своей команды в виде значений и "сохранил" их в объекте

teams <- unique(DB_Of_The_Match$home_team_name)
teams[2] <- unique(DB_Of_The_Match.2$away_team_name)

Затем я извлек строку в Mydbв котором есть совпадение, которое я анализирую

row_sub <- which(MYDB$HomeTeam==teams_2[1] & MYDB$AwayTeam==teams_2[2])

Затем я просто заменил ноль на созданные мной индексы

c <- c(Index1, Index2, Index3, Index4)

MyDB[row_sub, 23:30] <- c

> head(myDB)
# A tibble: 6 x 11
  Div   Date  HomeTeam AwayTeam  FTHG  FTAG FTR       Index1     Index2  Index3     Index4

1 I1    20/0… Juventus Fiorent…     2     1 H              0          0            0           0
2 I1    20/0… Roma     Udinese      4     0 H              0          0            0           0
3 I1    21/0… Atalanta Lazio        3     4 A              0          0            0           0
4 I1    21/0… Bologna  Crotone      1     0 H              0          0            0           0
5 I1    21/0… Chievo   Inter        2     0 H              0          0            0           0
6 I1    21/0… Empoli   Sampdor…     0     1 A              Val1        Val2       Val3        Val4
...