【发布时间】:2016-10-13 01:42:41
【问题描述】:
我有一个大数据框,其中包含有关体育比赛结果的数据。我想尝试根据某些标准从数据框中提取特定数据。这是我的意思的一个简单例子...... 想象一下,我有一个数据框 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
因此,例如,在第 [1] 行中,曼联战胜了巴萨,曼联队长的名字是约翰,他来自英格兰。 Barcalona(比赛的失败者)队长的名字是Carlos,他来自西班牙。
我想用锦标赛中所有英国玩家的名字构造一个向量,输出应该是这样的:
[1] "John" "Mark" "Steve"
到目前为止,这是我尝试过的... 我的第一步是创建一个数据框,丢弃所有没有英国队长的比赛
> 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
然后我在 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
然后我就卡住了!如您所见,输出显示了英文获胜者的名字和他的对手的名字......这不是我想要的! 从这个数据框中读取名称很容易..但是我正在使用的数据框很大,所以仅仅读取这些值是不好的! 关于我将如何做到这一点的任何建议?
【问题讨论】:
-
似乎您需要组合两个子集-
Win_Capt_Nm当Win_Country是英格兰时,Lose_Cpt_Nm当Lose_Country是英格兰时。分别拉取每个向量,使用c()组合它们。 -
这是一个很好的问题,但请记住在使用 R 标签时通过
dput()分享您的数据。将指针悬停在r标签上以了解更多信息。 -
我认为你需要制作两个子集:首先你在 win country = england 上设置子集并获取球员姓名。然后你在失去国家=英格兰的子集上做同样的事情。最后,您通过 rbind 将两个列表放在一起。然而,这可能会导致重复,yoi 可以使用 'uniq' 将其删除