我是R的新手(以及一般的编程),目前正在尝试弄清楚如何从大文件创建多个数据框子集,而不必使用subset
函数来创建每个单独的数据框。这是一个例子。
假设我有一个由数字指定的大量足球比赛清单。然后我列出每个游戏中涉及哪些位置(宽接收器,紧密端等),然后列出所得到的码数。
如何为每个游戏(play1,play2等)创建单独的数据框,而无需为每个游戏复制和粘贴单独的subset
功能?当有100场比赛/比赛时,它变得相当沉重。这是一个小样本图表:
Play Play.des result
1 WR1 -5
1 WR2 -5
1 OL -5
1 WR3 -5
1 WR4 -5
1 RB -5
1 QB -5
2 WR1 7
2 WR2 7
2 OL 7
2 WR3 7
2 RB 7
2 RB 7
2 QB 7
3 WR1 24
3 WR2 24
3 OL 24
3 WR3 24
3 WR4 24
3 RB 24
3 QB 24
4 WR1 -2
4 TE -2
4 OL -2
4 TE -2
4 WR4 -2
4 RB -2
4 QB -2
答案 0 :(得分:0)
一种选择是使用split
函数:
dfs <- split(df, unique(df$Play))
dfs$`1`
# Play Play.des result
# 1 1 WR1 -5
# 5 1 WR4 -5
# 9 2 WR2 7
# 13 2 RB 7
# 17 3 OL 24
# 21 3 QB 24
# 25 4 TE -2
dfs$`2`
# Play Play.des result
# 2 1 WR2 -5
# 6 1 RB -5
# 10 2 OL 7
# 14 2 QB 7
# 18 3 WR3 24
# 22 4 WR1 -2
# 26 4 WR4 -2
# Similarly 3rd and 4th can be accessed.
数据:强>
df <- read.table(text =
"Play Play.des result
1 WR1 -5
1 WR2 -5
1 OL -5
1 WR3 -5
1 WR4 -5
1 RB -5
1 QB -5
2 WR1 7
2 WR2 7
2 OL 7
2 WR3 7
2 RB 7
2 RB 7
2 QB 7
3 WR1 24
3 WR2 24
3 OL 24
3 WR3 24
3 WR4 24
3 RB 24
3 QB 24
4 WR1 -2
4 TE -2
4 OL -2
4 TE -2
4 WR4 -2
4 RB -2
4 QB -2",
header = TRUE, stringsAsFactors = FALSE)