如何将一列数据从一个表插入到另一个表?

时间:2020-04-17 18:12:03

标签: r matrix rstudio

我正在尝试添加此表:

#       [,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等)的左列插入适当的单元格中。该数据集(8、7、2等)的右侧对应于数据框中需要输入值的字母。 (例如,AwayTeam E = 5 = -.05)

我不确定如何将一列插入另一数据框中,以及如何参考所附的字母指南。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

一种选择是创建一个命名向量,使用它来匹配“ 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))