【发布时间】:2018-06-08 05:15:55
【问题描述】:
祝大家节日快乐!
这个网站对我过去的编程需求特别有帮助,所以我希望你能在这里帮助我,但我有点卡住了:)
上下文
目前,我有一个名为wc_match_data 的充满足球比赛的数据框。这是它的样子:
type_id tourn_id day month year team_A score_A score_B team_B win loss
f wc_1934 27 5 1934 Germany 5 2 Belgium Germany Belgium
我无法拟合最后一列draw 的数据,但基本上draw 列是TRUE,如果比赛是平局,则为FALSE。在平局的情况下,输赢一栏只填DRAW。
type_id 是 f 或 q,具体取决于比赛是世界杯预选赛还是世界杯决赛。 tourn_id 指的是比赛所针对的锦标赛,无论是预选赛还是决赛。
我想做的事
我基本上是在尝试为每个世界杯年份(1930、1934、1950、1954 等)创建一个新的数据框列表。每个新数据框的第一列应该是仅参加过该世界杯比赛的国家(因此每次比赛都会改变)。
这就是我正在做的事情
# Create tournament vector (20 total)
wc_years <- levels(wc_match_data$tourn_id)
# Create empty list
wc_dataframes <- list()
# Filter
wc_dataframes <- lapply(wc_years, function(year)
data.frame(subset(wc_match_data, tourn_id == year))
这对我不起作用。它确实创建了一个包含 20 个元素的列表,但是当我在我的环境中查看它时,一切都变得无法识别,并且 20 个数据帧中的每一个的 tourn_id 列都表示它有 20 个级别,这显然不是我想要的。它应该只是一个。我很迷茫,有人能指出我正确的方向吗?如果这能让事情变得更简单,我很乐意将我的数据发送给您。
最后一点
如您所知,我什至还没有考虑将独特的国家/地区纳入lapply 函数。我知道这段代码:
unique(c(as.character(unique(wc_match_data$team_A)),
as.character(unique(wc_match_data$team_B))))
将返回所有世界杯的唯一国家/地区列表,但我需要这些用于每个个人世界杯,我真的不知道该怎么做。
非常感谢您的帮助,祝您节日快乐!我希望这个问题可以帮助将来的人:)
【问题讨论】:
标签: r dataframe unique subset lapply