这是我的第一篇文章。
我有Nhl草案的这个数据框。 我想做的是使用某种递归函数来创建10个对象。
所以,我想通过按年度对Nhl数据帧进行子集来创建这10个对象。 以下是数据集的前6行(nhl_draft)
Year Overall Team
1 2000 1 New York Islanders
2 2000 2 Atlanta Thrashers
3 2000 3 Minnesota Wild
4 2000 4 Columbus Blue Jackets
5 2000 5 New York Islanders
6 2000 6 Nashville Predators
Player PS
1 Rick DiPietro 49.3
2 Dany Heatley 95.2
3 Marian Gaborik 103.6
4 Rostislav Klesla 34.5
5 Raffi Torres 28.4
6 Scott Hartnell 74.5
我想通过将2000年〜2009年的年份分列来创建10个对象。 我试过了,
for (i in 2000:2009) {
nhl_draft.i <- subset(nhl_draft, Year == "i")
}
但这并没有做任何事情。这个for循环的问题是什么?你能建议其他方式吗?
请告诉我这毕竟是否令人困惑,这是我的第一篇文章......
答案 0 :(得分:3)
以下代码可能会修复您的错误。
# Create an empty list
nhl_list <- list()
for (i in 2000:2009) {
# Subset the data frame based on Year
nhl_draft_temp <- subset(nhl_draft, Year == i)
# Assign the subset to the list
nhl_list[[as.character(i)]] <- nhl_draft_temp
}
但你可以考虑split
,这更简洁。
nhl_list <- split(nhl_draft, f = nhl_draft$Year)