我有一个大数据框,其中包含有关体育比赛结果的数据.我想尝试从数据框中提取特定数据,具体取决于某些标准.这是我的意思的一个简单示例...想象一下,我有一个数据框df,它显示每行锦标赛特定足球比赛的数据,如下所示:
Winner_Teams Win_Capt_Nm Win_Country Loser_teams Lose_Capt_Nm Lose_Country
1 Man utd John England Barcalona Carlos Spain
2 Liverpool Steve England Juventus Mario Italy
3 Man utd John Scotland R Madrid Juan Spain
4 Paris SG Teirey France Chelsea Mark England
Run Code Online (Sandbox Code Playgroud)
因此,例如,在第[1]行中,Man utd赢得了反对Barcalona,Man utd的队长的名字是John,他来自英格兰.巴尔卡洛纳(比赛的输家)队长的名字是卡洛斯,他来自西班牙.
我想构建一个带有锦标赛中所有英国玩家名字的矢量,输出应该如下所示:
[1] "John" "Mark" "Steve"
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所尝试的...我的第一步是创建一个数据框,丢弃所有没有英语队长的比赛
> England_player <- data.frame(filter(df, Win_Country=="England" ))
> England_player
Winner_Teams Win_Capt_Nm Win_Country Loser_teams Lose_Capt_Nm Lose_Country
1 Man utd John England Barcalona Carlos Spain
2 Liverpool Steve England Juventus Mario Italy
3 Paris SG Teirey France Chelsea MArk England
Run Code Online (Sandbox Code Playgroud)
然后我在England_player上使用select()来仅隔离名称:
> England_player_names <- select(England_player, Win_Capt_Nm, Lose_Capt_Nm)
> England_player_names
Win_Capt_Nm Lose_Capt_Nm
1 John Carlos
2 Steve Mario
3 Teirey Mark
Run Code Online (Sandbox Code Playgroud)
然后我卡住了!如您所见,输出显示英国获胜者的名字和对手的名字......这不是我想要的!只需从这个数据框中读取名称就很容易..但我正在使用的数据框很大,所以只读取值并不好!有关我如何做到这一点的任何建议?
english.players <- union(data$Win_Capt_Nm[data$Win_Country == 'England'], data$Lose_Capt_Nm[data$Lose_Country == 'England'])
[1] "John" "Steve" "Mark"
Run Code Online (Sandbox Code Playgroud)