如果我们需要从第一个数据集更改为第二个数据集,请使用pivot_longer
library(dplyr)
library(tidyr)
library(stringr)
df1 %>%
pivot_longer(cols = -GameID,names_to = c("Location",".value"),names_sep="_")
# A tibble: 4 x 4
# GameID Location Team Score
# <int> <chr> <fct> <dbl>
#1 1 Home Jazz 129
#2 1 Away Wizards 100
#3 2 Home Rockets 94
#4 2 Away Warriors 98
从第二个数据集中,可以使用pivot_wider
完成转换
df2 %>%
pivot_wider(names_from = Location,values_from = c(Team,Score)) %>%
rename_at(-1,~ str_replace(.,"(.*)_(.*)","\\2_\\1"))
# A tibble: 2 x 5
# GameID Home_Team Away_Team Home_Score Away_Score
# <dbl> <fct> <fct> <dbl> <dbl>
#1 1 Jazz Wizards 129 100
#2 2 Rockets Warriors 94 98
数据
df1 <- data.frame(GameID=1:2,Home_Team=c("Jazz","Rockets"),Home_Score=c(129,94),Away_Team=c("Wizards","Warriors"),Away_Score=c(100,98))
df2 <- data.frame(GameID=c(1,2,1,2),Location=c("Home","Home","Away","Away"),Team=c("Jazz","Rockets","Wizards",Score=c(129,94,100,98))
本文链接:https://www.f2er.com/3163899.html