2017-06-23 17 views
1

1年ごとにどのピッチャーの位置が最も変化したかを調べる。これまで使用してきたコードを含めました。dplyrフィルタ関数の複数の条件

strike_zone_analysis <- final_2016 %>% mutate(low_zone = 
ifelse(between(plate_x, -1.10, 1.10) & 
         between(plate_z, 1.49, 2.17), 1, 0)) %>% 
group_by(pitcher_name, game_year) %>% 
summarise(n_of_pitches = n(), 
prop_low_zone = sum(low_zone)/n_of_pitches) 

growth <- function(x)x/lag(x)-1 
YOY <- strike_zone_analysis_15_16 %>% 
group_by(pitcher_name) %>% 
mutate_each(funs(growth), prop_low_zone) 

YOY <- mutate(YOY, prop_low_zone = prop_low_zone*100) 
YOY$prop_low_zone <-round(YOY$prop_low_zone, 1) 

この例では、上記のコードのYOYデータフレームとほぼ一致する以下のデータフレームを作成しました。

pitcher_name <- c('AJ Griffin','AJ Griffin','AJ Burnett','AJ 
Burnett','Zach Godley','Zach Godley') 
game_year <- c(2016, 2017, 2016, 2017, 2016, 2017) 
#_of_pitches <- c(456, 550, 1001, 1760, 1500, 1800) 
pitching <- data.frame(pitcher_name, game_year, #_of_pitches) 

私は filter(pitching, #_of_pitches >=500)を使用する場合は2016年と2017年 の両方で少なくとも500曲のピッチを投げてきたデータフレームでピッチャーを隔離しているよ、私はすべての3人の投手として残されていたとき、私だけ両方の季節に少なくとも500ピッチを投げた投手(この例ではAJ BurnettとZach Godley)が欲しい。私はそこにdplyrフィルタ関数を組み込んでこれを行う方法があると思っていますが、私はそれを理解しようとしている私の車輪を回転させています。どんな入力も感謝します。ありがとう!

+0

'フィルター'内のケースを組み合わせるようにしてください。 – MikolajM

+0

'# 'は行の残りの部分をコメントアウトしてください。 – Masoud

答えて

1
library(tidyverse) 

# create data set 
pitcher_name <- c('AJ Griffin','AJ Griffin','AJ Burnett','AJ Burnett','Zach Godley','Zach Godley') 
game_year <- c(2016, 2017, 2016, 2017, 2016, 2017) 
n_of_pitches <- c(456, 550, 1001, 1760, 1500, 1800) 

pitching <- data.frame(pitcher_name, game_year, n_of_pitches) 

# filter for pitchers who made >= 500 pitches in both 2016 and 2017 
pitching %>% 
    group_by(pitcher_name) %>% 
    filter(all(n_of_pitches >= 500)) 
関連する問題