R 是否有方法根据观测名称从一个df读取/导入数据值到另一个df?
我有一个英国超级联赛球队评级的df和另一个完整赛季时间表的df。我希望能够将每支球队的评级作为一个变量附加到时间表中,这样我就可以得出每场比赛的概率。之后的一步是模拟整个赛季 我曾尝试编写一个if语句来匹配df_1到df_2的字符串,但我认为我的方法不对 我相信这对大多数人来说都是低级编码,我非常感谢你的帮助。我来这儿之前试过了。我真诚地感谢你R 是否有方法根据观测名称从一个df读取/导入数据值到另一个df?,r,R,我有一个英国超级联赛球队评级的df和另一个完整赛季时间表的df。我希望能够将每支球队的评级作为一个变量附加到时间表中,这样我就可以得出每场比赛的概率。之后的一步是模拟整个赛季 我曾尝试编写一个if语句来匹配df_1到df_2的字符串,但我认为我的方法不对 我相信这对大多数人来说都是低级编码,我非常感谢你的帮助。我来这儿之前试过了。我真诚地感谢你 vec_1 <- c("team_a", "team_b", "team_c") vec_2 <- c(1.7, 1.2, 0.8) vec
vec_1 <- c("team_a", "team_b", "team_c")
vec_2 <- c(1.7, 1.2, 0.8)
vec_3 <- c("team_d", "team_e", "team_f")
vec_4 <- c(0.3, 0.5, 0.4)
# df_1 ratings df
df_1 <- data_frame(team = vec_1, rating = vec_2)
team rating
<chr> <dbl>
1 team_a 1.7
2 team_b 1.2
3 team_c 0.8
# df_2 schedule df
df_2 <- data_frame(home_tm = vec_1, away_tm = vec_3)
home_tm away_tm
<chr> <chr>
1 team_a team_d
2 team_b team_e
3 team_c team_f
预期结果:
home_tm away_tm home_tm_rat away_tm_rat
<chr> <chr> <dbl> <dbl>
1 team_a team_d 1.7 0.3
2 team_b team_e 1.2 0.5
3 team_c team_f 0.8 0.4
......
......
......
如上所述,可以检查dplyr的连接:
类似于@liuminzhao,但我也建议您稍微考虑一下您的数据结构。如果将df_2中的所有球队都放在一列中,并用一个单独的列指示谁是主客场,事情就会变得更容易。阅读更多关于
结帐加入从DPL可能重复的感谢一百万!谢谢大家!你好,我也会调查的。非常感谢。
df_2 %>%
left_join(df_1, by= c('home_tm' = 'team')) %>%
rename(home_tm_rat = rating) %>%
left_join(df_1, by = c('away_tm' = 'team')) %>%
rename(away_tm_rat = rating)
# A tibble: 3 x 4
home_tm away_tm home_tm_rat away_tm_rat
<chr> <chr> <dbl> <dbl>
1 team_a team_d 1.7 0.3
2 team_b team_e 1.2 0.5
3 team_c team_f 0.8 0.4
library(tidyverse)
df_2 %>%
#gather the two columns of teams into a single column, using another column to indicate home/away
gather(key = HomeAway, value = team) %>%
#join the team ratings
left_join(df_1, by = c("team" = "team"))
# A tibble: 6 x 3
HomeAway team rating
<chr> <chr> <dbl>
1 home_tm team_a 1.7
2 home_tm team_b 1.2
3 home_tm team_c 0.8
4 away_tm team_d NA
5 away_tm team_e NA
6 away_tm team_f NA