使用R从数据框构造名称向量

时间:2016-10-12 17:30:46

标签: r vector

我有一个大数据框,其中包含有关体育比赛结果的数据。我想尝试从数据框中提取特定数据,具体取决于某些标准。这是我的意思的一个简单例子...... 想象一下,我有一个数据框df,它显示每行锦标赛特定足球比赛的数据,如下所示:

{
  "TypedValue": {
    "__type": "TypedSurrogateOfdateTime:#Question39973917",
    "Value": "/Date(1476244800000)/"
  }
}

所以,例如,在第[1]行中,Man utd赢得了反对Barcalona,Man utd的队长的名字是John,他来自英格兰。巴尔卡洛纳(比赛的输家)队长的名字是卡洛斯,他来自西班牙。

我想构建一个带有锦标赛中所有英国玩家名字的矢量,输出应该是这样的:

   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

这是我到目前为止所尝试过的... 我的第一步是创建一个数据框,丢弃所有没有英语队长的比赛

[1] "John"  "Mark"  "Steve"

然后我在England_player上使用select()来仅隔离名称:

> 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

然后我卡住了!如您所见,输出显示英国获胜者的名字和对手的名字......这不是我想要的! 只需从这个数据框中读取名称就很容易..但我正在使用的数据框很大,所以只读取值并不好! 关于我如何做这个的任何建议?

1 个答案:

答案 0 :(得分:5)

english.players <- union(data$Win_Capt_Nm[data$Win_Country == 'England'], data$Lose_Capt_Nm[data$Lose_Country == 'England'])

[1] "John"  "Steve" "Mark"