2017-05-13 2 views
-1

는 데이터 프레임 결과 1 승리를 나타냅니다주파수의 수는

Date   Team   Opponent Weather Outcome 
2017-05-01 All Stars  B Stars  Rainy  1 
2017-05-02 All Stars  V Stars  Rainy  1 
2017-05-03 All Stars  M Trade  Sunny  0 
. 
. 
2017-05-11 All Stars  Vdronee  Sunny  0 

을 가지고 R. 나는 주파수와 적용 조건을 얻기 위해 테이블 ​​함수를 사용했다.

오히려 수동으로 승리 주파수를 계산, 어떻게 수행

table(df$Outcome, df$Team == "All Stars") 

나에게이

FALSE TRUE 
    0 1005 30 
    1 1323 57 

그래서 승리의 주파수가 87분의 57 = 0.655

두 가지 질문을 반환 수식에 직접 포함 시키시겠습니까?

내가이 X 가장 최근의 관찰을 기준으로 필터링하려면 어떻게

?

table(df$Outcome, df$Team == "All Stars" & df$date = filtering for the 5 most recent observations) 

감사

같은 즉, 뭔가
+0

이 당신의 '날짜'열은 항상 연대순으로 분류됩니까? 그것은 apears로 나타납니다. – Kanak

+0

비례 테이블의 경우, prop.table()을 사용할 수 있습니다. –

+0

@kanak은 팀 단위로 내림차순으로 정렬됩니다. 예 2017년 1월 1일 모든 별 2017년 1월 2일 모든 별 2017년 1월 1일 다른 팀 2017년 1월 2일 다른 팀 – Adni

답변

0

의 옵션은 다음에 당신이 할 수있는 5 명 개의 가장 최근의 관찰 결과를 얻을 수 data.table

libray(data.table) 
dt <- data.table(df) 
dt[, .(prop=sum(outcome)/.N),Team] 

을 사용하는 것입니다

dt[,head(.SD,5),by=.(Team,Date)][,.(prop=sum(outcoume/.N),Team] 
+0

코멘트 주셔서 감사합니다. 위 공식에 필터가 적용된 위치는 어디입니까? 내 데이터 프레임에 "All Stars"라는 팀이 더 있습니다. 위의 제안은 특정 팀의 권리를 필터링하지 않습니다? – Adni

+0

팀별로 그룹화됩니다. – DJJ

+0

이 예와 같이 특정 팀을 필터링 할 수 있습니까? table (df $ Outcome, df $ Team == "All Stars") – Adni