我想在@
和testj$pre_season
中的OPP列中总结包含test$regular_season
的所有数据,
例如,我可以根据该数据计算REB列的平均值。
这是我唯一尝试过的事情:
> selectedrows <- grep('@', testj$pre_season$OPP)
> test$pre_season$OPP[selectedrows]
# [1] @ DET @ BKN vsORL vsNY
# Levels: @ BKN @ BOS @ DET @ MIN vsBOS vsCHA vsNY vsORL
> head(testj)
# $name
# [1] "Eric Bledsoe"`
# $pre_season
# DATE OPP SCORE MIN FGM-FGA FG% 3PM-3PA 3P% FTM-FTA FT% REB AST BLK STL PF TO PTS
# 1 Fri 10/24 @ UTAH W 105-100 30 8 0.500 1 0.000 10 0.600 5 5 0 3 2 1 14
# 2 Wed 10/22 @ LAC L 105-108 34 12 0.500 4 0.750 14 0.857 1 2 0 2 2 3 27
# 3 Tue 10/21 @ LAL W 114-108 22 8 0.500 1 1.000 2 1.000 7 6 3 1 0 2 11
# 4 Thu 10/16 vsSA W 121-90 26 10 0.700 3 0.667 1 0.000 0 6 2 2 4 4 16
# 5 Mon 10/13 @ HOU L 92-95 20 8 0.625 1 0.000 5 0.600 2 2 0 0 2 3 13
# 6 Fri 10/10 vsDEN W 97-89 17 6 0.333 3 0.333 6 0.667 2 4 0 1 2 0 9
# 7 Wed 10/8 vs FLMG W 100-88 22 10 0.700 2 0.000 2 0.500 4 2 0 1 3 2 15
# $regular_season
# DATE OPP SCORE MIN FGM-FGA FG% 3PM-3PA 3P% FTM-FTA FT% REB AST BLK STL PF TO PTS
# 1 Tue 4/14 vsLAC L 101-112 33 14 0.286 5 0.000 4 0.500 6 9 0 1 0 2 10
# 2 Sun 4/12 @ SA L 91-107 41 13 0.538 3 0.000 6 1.000 4 10 0 0 1 1 20
# 3 Fri 4/10 @ NO L 75-90 39 19 0.368 6 0.333 4 0.750 2 7 1 1 1 4 19`
testj
的类是一个列表,而testj$pre_season
和testj$regular_season
的类是data.frame s
数据:
> dput(testj)
structure(list(name = "Eric Bledsoe", pre_season = structure(list(
DATE = structure(c(2L, 6L, 5L, 4L, 3L, 1L, 7L), .Label = c("Fri 10/10",
"Fri 10/24", "Mon 10/13", "Thu 10/16", "Tue 10/21", "Wed 10/22",
"Wed 10/8"), class = "factor"), OPP = structure(c(4L, 2L,
3L, 7L, 1L, 6L, 5L), .Label = c("@ HOU", "@ LAC", "@ LAL",
"@ UTAH", "vs FLMG", "vsDEN", "vsSA"), class = "factor"),
SCORE = structure(c(4L, 1L, 5L, 6L, 2L, 7L, 3L), .Label = c("L 105-108",
"L 92-95", "W 100-88", "W 105-100", "W 114-108", "W 121-90",
"W 97-89"), class = "factor"), MIN = c(30, 34, 22, 26, 20,
17, 22), `FGM-FGA` = c(8, 12, 8, 10, 8, 6, 10), `FG%` = c(0.5,
0.5, 0.5, 0.7, 0.625, 0.333, 0.7), `3PM-3PA` = c(1, 4, 1,
3, 1, 3, 2), `3P%` = c(0, 0.75, 1, 0.667, 0, 0.333, 0), `FTM-FTA` = c(10,
14, 2, 1, 5, 6, 2), `FT%` = c(0.6, 0.857, 1, 0, 0.6, 0.667,
0.5), REB = c(5, 1, 7, 0, 2, 2, 4), AST = c(5, 2, 6, 6, 2,
4, 2), BLK = c(0, 0, 3, 2, 0, 0, 0), STL = c(3, 2, 1, 2,
0, 1, 1), PF = c(2, 2, 0, 4, 2, 2, 3), TO = c(1, 3, 2, 4,
3, 0, 2), PTS = c(14, 27, 11, 16, 13, 9, 15)), .Names = c("DATE",
"OPP", "SCORE", "MIN", "FGM-FGA", "FG%", "3PM-3PA", "3P%", "FTM-FTA",
"FT%", "REB", "AST", "BLK", "STL", "PF", "TO", "PTS"), row.names = c(NA,
-7L), class = "data.frame"), regular_season = structure(list(
DATE = structure(c(66L, 53L, 19L, 82L, 67L, 40L, 57L, 28L,
52L, 17L, 80L, 51L, 38L, 56L, 50L, 16L, 79L, 29L, 39L, 18L,
81L, 27L, 37L, 54L, 78L, 26L, 36L, 14L, 65L, 49L, 15L, 55L,
25L, 30L, 4L, 69L, 42L, 3L, 68L, 20L, 1L, 58L, 41L, 5L, 70L,
59L, 43L, 2L, 77L, 63L, 48L, 12L, 62L, 47L, 34L, 76L, 23L,
46L, 11L, 64L, 24L, 35L, 13L, 61L, 44L, 9L, 74L, 22L, 33L,
8L, 73L, 21L, 32L, 7L, 72L, 45L, 10L, 75L, 60L, 31L, 6L,
71L), .Label = c("Fri 1/16", "Fri 1/2", "Fri 1/23", "Fri 1/30",
"Fri 1/9", "Fri 10/31", "Fri 11/14", "Fri 11/21", "Fri 11/28",
"Fri 11/7", "Fri 12/12", "Fri 12/26", "Fri 12/5", "Fri 2/20",
"Fri 2/6", "Fri 3/13", "Fri 3/27", "Fri 3/6", "Fri 4/10",
"Mon 1/19", "Mon 11/17", "Mon 11/24", "Mon 12/15", "Mon 12/8",
"Mon 2/2", "Mon 2/23", "Mon 3/2", "Mon 3/30", "Mon 3/9",
"Sat 1/31", "Sat 11/1", "Sat 11/15", "Sat 11/22", "Sat 12/20",
"Sat 12/6", "Sat 2/21", "Sat 2/28", "Sat 3/21", "Sat 3/7",
"Sat 4/4", "Sun 1/11", "Sun 1/25", "Sun 1/4", "Sun 11/30",
"Sun 11/9", "Sun 12/14", "Sun 12/21", "Sun 12/28", "Sun 2/8",
"Sun 3/15", "Sun 3/22", "Sun 3/29", "Sun 4/12", "Thu 2/26",
"Thu 2/5", "Thu 3/19", "Thu 4/2", "Tue 1/13", "Tue 1/6",
"Tue 11/4", "Tue 12/2", "Tue 12/23", "Tue 12/30", "Tue 12/9",
"Tue 2/10", "Tue 4/14", "Tue 4/7", "Wed 1/21", "Wed 1/28",
"Wed 1/7", "Wed 10/29", "Wed 11/12", "Wed 11/19", "Wed 11/26",
"Wed 11/5", "Wed 12/17", "Wed 12/31", "Wed 2/25", "Wed 3/11",
"Wed 3/25", "Wed 3/4", "Wed 4/8"), class = "factor"), OPP = structure(c(42L,
25L, 19L, 7L, 1L, 57L, 10L, 24L, 50L, 53L, 55L, 36L, 11L,
48L, 49L, 30L, 47L, 39L, 6L, 2L, 22L, 16L, 54L, 50L, 8L,
32L, 5L, 18L, 40L, 26L, 57L, 24L, 44L, 10L, 34L, 58L, 42L,
40L, 53L, 43L, 47L, 35L, 15L, 25L, 18L, 17L, 56L, 52L, 21L,
19L, 14L, 26L, 36L, 29L, 20L, 4L, 46L, 21L, 38L, 45L, 13L,
11L, 7L, 41L, 51L, 8L, 37L, 27L, 12L, 23L, 9L, 3L, 13L, 33L,
31L, 39L, 55L, 44L, 14L, 28L, 54L, 43L), .Label = c("@ ATL",
"@ BKN", "@ BOS", "@ CHA", "@ CHI", "@ CLE", "@ DAL", "@ DEN",
"@ DET", "@ GS", "@ HOU", "@ IND", "@ LAC", "@ LAL", "@ MEM",
"@ MIA", "@ MIL", "@ MIN", "@ NO", "@ NY", "@ OKC", "@ ORL",
"@ PHI", "@ POR", "@ SA", "@ SAC", "@ TOR", "@ UTAH", "@ WSH",
"vsATL", "vsBKN", "vsBOS", "vsCHA", "vsCHI", "vsCLE", "vsDAL",
"vsDEN", "vsDET", "vsGS", "vsHOU", "vsIND", "vsLAC", "vsLAL",
"vsMEM", "vsMIA", "vsMIL", "vsMIN", "vsNO", "vsNY", "vsOKC",
"vsORL", "vsPHI", "vsPOR", "vsSA", "vsSAC", "vsTOR", "vsUTAH",
"vsWSH"), class = "factor"), SCORE = structure(c(4L, 33L,
21L, 6L, 19L, 76L, 7L, 26L, 39L, 24L, 42L, 79L, 65L, 75L,
44L, 29L, 49L, 23L, 22L, 53L, 47L, 41L, 20L, 66L, 54L, 12L,
9L, 11L, 16L, 25L, 43L, 28L, 3L, 27L, 81L, 50L, 2L, 14L,
68L, 61L, 55L, 51L, 13L, 36L, 60L, 45L, 74L, 59L, 18L, 8L,
63L, 62L, 73L, 46L, 80L, 56L, 35L, 30L, 5L, 38L, 17L, 36L,
67L, 64L, 31L, 40L, 71L, 1L, 48L, 72L, 77L, 69L, 10L, 37L,
57L, 52L, 15L, 32L, 58L, 34L, 78L, 70L), .Label = c("L 100-104",
"L 100-120", "L 101-102", "L 101-112", "L 103-105", "L 104-107",
"L 106-107", "L 106-110", "L 107-112", "L 107-120", "L 109-111",
"L 110-115", "L 110-122", "L 111-113", "L 112-114", "L 118-127",
"L 120-121", "L 134-137", "L 69-96", "L 74-101", "L 75-90",
"L 79-89", "L 80-98", "L 81-87", "L 83-85", "L 86-109", "L 87-106",
"L 87-108", "L 87-96", "L 88-112", "L 90-93", "L 91-102",
"L 91-107", "L 91-118", "L 94-96", "L 95-100", "L 95-103",
"L 97-103", "L 97-109", "L 97-122", "L 98-115", "L 99-108",
"W 100-93", "W 102-89", "W 102-96", "W 104-92", "W 105-100",
"W 106-83", "W 106-97", "W 106-98", "W 107-100", "W 107-95",
"W 108-100", "W 110-96", "W 110-99", "W 111-106", "W 112-104",
"W 112-106", "W 112-96", "W 113-111", "W 115-100", "W 115-106",
"W 116-107", "W 116-99", "W 117-102", "W 117-113", "W 118-106",
"W 118-113", "W 118-114", "W 119-99", "W 120-112", "W 122-96",
"W 124-115", "W 125-109", "W 74-72", "W 87-85", "W 88-86",
"W 94-89", "W 98-92", "W 99-90", "W 99-93"), class = "factor"),
MIN = c(33, 41, 39, 33, 26, 36, 40, 26, 39, 38, 35, 37, 37,
37, 37, 35, 34, 36, 39, 37, 38, 34, 32, 42, 36, 39, 32, 36,
40, 0, 31, 35, 38, 32, 37, 37, 32, 39, 34, 31, 28, 38, 42,
39, 33, 38, 30, 31, 42, 37, 32, 34, 35, 29, 36, 39, 36, 22,
31, 36, 45, 36, 40, 39, 35, 27, 38, 37, 25, 22, 36, 30, 34,
38, 23, 22, 43, 36, 21, 29, 39, 26), `FGM-FGA` = c(14, 13,
19, 7, 9, 13, 17, 11, 12, 20, 15, 15, 18, 15, 15, 12, 14,
11, 12, 10, 7, 10, 9, 16, 15, 18, 8, 11, 19, 0, 12, 10, 16,
11, 16, 9, 11, 14, 22, 11, 12, 8, 16, 11, 17, 10, 12, 14,
19, 13, 19, 11, 19, 15, 15, 15, 9, 12, 9, 11, 16, 17, 13,
20, 14, 14, 10, 16, 10, 8, 11, 11, 6, 17, 5, 6, 19, 12, 4,
11, 15, 7), `FG%` = c(0.286, 0.538, 0.368, 0.714, 0.444,
0.385, 0.353, 0.455, 0.417, 0.25, 0.467, 0.4, 0.611, 0.133,
0.533, 0.583, 0.5, 0.545, 0.25, 0.5, 0.429, 0.6, 0.333, 0.688,
0.467, 0.444, 0.625, 0.364, 0.474, 0, 0.5, 0.5, 0.563, 0.455,
0.5, 0.333, 0.545, 0.571, 0.5, 0.455, 0.333, 0.375, 0.313,
0.636, 0.412, 0.3, 0.583, 0.429, 0.526, 0.462, 0.368, 0.636,
0.316, 0.4, 0.533, 0.333, 0.444, 0.333, 0.667, 0.182, 0.5,
0.412, 0.462, 0.55, 0.357, 0.286, 0.6, 0.5, 0.2, 0.625, 0.545,
0.455, 0, 0.471, 0.8, 0.333, 0.474, 0.75, 0.5, 0.273, 0.2,
0.714), `3PM-3PA` = c(5, 3, 6, 3, 2, 1, 5, 0, 5, 4, 6, 6,
3, 4, 3, 4, 5, 3, 3, 2, 1, 3, 2, 3, 3, 5, 3, 2, 4, 0, 3,
2, 3, 2, 3, 4, 4, 4, 6, 3, 4, 3, 5, 3, 2, 4, 2, 5, 4, 3,
3, 3, 7, 3, 3, 4, 2, 2, 3, 6, 6, 6, 2, 4, 3, 2, 3, 6, 3,
2, 2, 0, 2, 7, 1, 1, 5, 2, 0, 5, 2, 4), `3P%` = c(0, 0, 0.333,
0.333, 0, 0, 0.4, 0, 0.2, 0, 0.333, 0.167, 0.667, 0, 0.333,
0.75, 0.4, 0.667, 0.333, 0.5, 1, 0.333, 0, 0.667, 0.333,
0.4, 0.333, 0, 0.5, 0, 1, 0.5, 0.333, 0.5, 0.667, 0.25, 0.25,
0.25, 0.167, 0.667, 0.25, 0.333, 0.2, 1, 0, 0, 0.5, 0.6,
0.5, 0, 0.333, 0.333, 0.143, 0, 0.333, 0.25, 0, 0, 0.667,
0, 0.333, 0.167, 1, 0.25, 0.333, 0, 0.667, 0.5, 0, 0.5, 0,
0, 0, 0.429, 1, 0, 0.2, 1, 0, 0, 0.5, 0.75), `FTM-FTA` = c(4,
6, 4, 4, 2, 7, 5, 3, 5, 3, 5, 10, 11, 2, 6, 6, 2, 6, 0, 11,
6, 11, 7, 8, 3, 4, 2, 6, 13, 0, 0, 7, 4, 6, 5, 1, 6, 10,
15, 7, 7, 6, 0, 4, 4, 6, 7, 2, 7, 12, 7, 5, 3, 6, 9, 4, 4,
5, 2, 0, 9, 10, 5, 5, 2, 8, 8, 8, 5, 4, 9, 6, 1, 3, 2, 6,
7, 4, 3, 5, 5, 3), `FT%` = c(0.5, 1, 0.75, 0.75, 0.5, 0.857,
0.8, 0.667, 0.8, 1, 0.6, 0.7, 0.909, 0.5, 0.667, 0.667, 1,
0.833, 0, 0.727, 1, 0.636, 0.857, 0.5, 1, 0.75, 1, 0.667,
0.923, 0, 0, 0.857, 0.5, 0.833, 1, 1, 0.667, 0.8, 0.667,
0.714, 1, 0.833, 0, 0.5, 0.75, 0.667, 0.714, 1, 1, 0.75,
1, 0.6, 1, 0.833, 0.889, 1, 0.75, 0.8, 1, 0, 1, 0.8, 1, 0.8,
1, 1, 0.875, 0.75, 1, 0.5, 0.667, 0.833, 1, 1, 1, 0.833,
0.571, 0.75, 0.667, 0.8, 1, 1), REB = c(6, 4, 2, 1, 2, 3,
6, 3, 1, 3, 5, 6, 8, 11, 9, 3, 2, 2, 4, 10, 7, 4, 6, 13,
6, 7, 7, 7, 4, 0, 2, 7, 7, 3, 4, 5, 1, 8, 10, 5, 4, 7, 3,
5, 7, 6, 2, 5, 2, 8, 8, 5, 10, 9, 10, 2, 6, 1, 5, 5, 11,
4, 3, 3, 3, 3, 1, 7, 9, 5, 6, 4, 6, 11, 4, 0, 5, 5, 0, 4,
9, 6), AST = c(9, 10, 7, 3, 5, 5, 11, 5, 7, 7, 1, 9, 4, 2,
11, 6, 9, 3, 9, 6, 9, 3, 0, 9, 6, 10, 8, 6, 4, 0, 6, 4, 8,
3, 6, 6, 7, 9, 6, 7, 2, 6, 5, 9, 1, 10, 8, 8, 8, 3, 8, 6,
11, 3, 3, 2, 4, 4, 2, 8, 16, 3, 7, 7, 6, 4, 10, 6, 5, 7,
4, 7, 10, 5, 3, 3, 8, 4, 1, 8, 3, 9), BLK = c(0, 0, 1, 0,
0, 0, 1, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
4, 1, 1, 1, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 1, 0, 0, 0, 1,
1, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 2,
3, 2, 0, 0, 1, 0, 2, 0, 0, 1, 0, 0, 1, 0, 0, 2, 0, 1, 1,
1, 0), STL = c(1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 3, 3, 4,
2, 1, 1, 2, 1, 2, 3, 1, 0, 1, 2, 2, 3, 0, 2, 0, 4, 0, 4,
1, 3, 2, 2, 0, 3, 3, 1, 1, 2, 0, 5, 2, 3, 1, 1, 2, 4, 0,
3, 1, 3, 0, 3, 1, 1, 1, 2, 3, 0, 4, 1, 0, 3, 2, 0, 1, 2,
3, 3, 1, 1, 0, 2, 0, 0, 2, 1, 0), PF = c(0, 1, 1, 3, 1, 2,
3, 2, 3, 1, 1, 5, 2, 2, 2, 3, 1, 3, 2, 3, 3, 3, 1, 5, 2,
3, 2, 4, 1, 0, 2, 2, 4, 2, 1, 2, 4, 5, 1, 3, 2, 1, 0, 3,
1, 2, 2, 1, 6, 1, 1, 2, 2, 3, 0, 0, 3, 3, 2, 2, 4, 4, 3,
0, 5, 2, 3, 4, 2, 3, 3, 1, 4, 1, 2, 4, 5, 0, 3, 4, 2, 2),
TO = c(2, 1, 4, 2, 5, 1, 2, 5, 6, 0, 3, 7, 3, 3, 3, 7, 5,
6, 3, 7, 7, 1, 2, 5, 6, 6, 5, 4, 3, 0, 0, 6, 3, 4, 4, 3,
4, 3, 3, 3, 2, 1, 1, 4, 3, 7, 1, 0, 3, 2, 3, 2, 3, 2, 3,
3, 5, 1, 2, 7, 5, 1, 3, 2, 6, 3, 3, 3, 6, 2, 3, 3, 3, 1,
7, 2, 5, 9, 1, 1, 2, 1), PTS = c(10, 20, 19, 14, 9, 16, 18,
12, 15, 13, 19, 20, 34, 5, 21, 21, 18, 19, 7, 19, 13, 20,
12, 28, 18, 21, 13, 12, 32, 0, 15, 17, 21, 16, 23, 8, 17,
25, 33, 17, 16, 12, 11, 19, 17, 10, 20, 17, 29, 21, 22, 18,
16, 17, 25, 15, 11, 12, 16, 4, 27, 23, 19, 27, 13, 16, 21,
25, 9, 13, 18, 15, 1, 22, 11, 9, 23, 23, 6, 10, 12, 16)), .Names = c("DATE",
"OPP", "SCORE", "MIN", "FGM-FGA", "FG%", "3PM-3PA", "3P%", "FTM-FTA",
"FT%", "REB", "AST", "BLK", "STL", "PF", "TO", "PTS"), row.names = c(NA,
-82L), class = "data.frame"), post_season = NULL), .Names = c("name",
"pre_season", "regular_season", "post_season"))
答案 0 :(得分:1)
尝试
sapply(testj[paste0(c('pre', 'regular'), '_season')],
function(x) mean(x$REB[grep('@', x$OPP)]))