Как вставить один столбец данных из одной таблицы в другую? - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь добавить эту таблицу:

#       [,1]
#[1,] -0.870  8
#[2,] -0.750  7  
#[3,]  2.290  2
#[4,] -0.050  5
#[5,]  0.355  4
#[6,] -0.895  9
#[7,]  3.290  1 
#[8,] -0.510  6 
#[9,]  0.430  3
#[10,] -3.290 10

В это соответствующие столбцы "predAwayScore" и "predHomeScore" в моем фрейме данных. enter image description here

Я хочу вставить левый столбец первого набора данных (-.87, -.75 и т. Д. c.) В соответствующие ячейки. Правая часть этого набора данных (8,7,2 и т. Д. c.) Соответствует букве на фрейме данных, в которую необходимо ввести значение. (Например, AwayTeam E = 5 = -.05)

Я не уверен, как вставить один столбец в другой фрейм данных и как обратиться к соответствующему прилагаемому руководству по буквам.

Я ценю любую помощь.

1 Ответ

0 голосов
/ 17 апреля 2020

Один из вариантов - создать именованный вектор, использовать его для сопоставления значений «AwayTeam», «HomeTeam», чтобы получить соответствующие оценки, и назначить эти значения столбцам «predAwayScore», «predHomeScore»

nm1 <- setNames(m1[,1], LETTERS[m1[,2]])
df1$predAwayScore <- nm1[df1[['AwayTeam']]]
df1$predHomeScore <- nm1[df1[['HomeTeam']]]
df1
#  Week AwayTeam HomeTeam predAwayScore predHomeScore
#1    3        E        A        -0.050          3.29
#2    3        A        F         3.290         -0.51
#3    4        H        E        -0.870         -0.05
#4    4        I        A        -0.895          3.29
#5    5        F        C        -0.510          0.43
#6    5        F        J        -0.510         -3.29

данные

m1 <- structure(c(-0.87, -0.75, 2.29, -0.05, 0.3555, -0.895, 3.29, 
-0.51, 0.43, -3.29, 8, 7, 2, 5, 4, 9, 1, 6, 3, 10), .Dim = c(10L, 
2L))

df1 <- structure(list(Week = c(3, 3, 4, 4, 5, 5), AwayTeam = c("E", 
"A", "H", "I", "F", "F"), HomeTeam = c("A", "F", "E", "A", "C", 
"J")), class = "data.frame", row.names = c(NA, -6L))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...