2017-10-31 12 views
1

각 팀의 데이터 프레임은 nebraska입니다. 그러나 이러한 가난한 팀 중 일부는 단 하나의 승리를 거두지 않으므로 $Outcome 열에는 L뿐입니다. 내가 table(nebraska$Outcome을 실행하면R에서 테이블 함수를 사용하여 사용자 정의 헤더를 만들 수 있습니까?

> nebraska 
      Teams  Away/Home Score Outcome 
1  Arkansas State  Away 36 
2   Nebraska  Home 43  W 
3   Nebraska  Away 35  L 
4    Oregon  Home 42       
5 Northern Illinois  Away 21       
6   Nebraska  Home 17  L 
7   Rutgers  Away 17       
8   Nebraska  Home 27  W 
9   Nebraska  Away 28  W 
10   Illinois  Home  6       
11   Wisconsin  Away 38       
12   Nebraska  Home 17  L 
13  Ohio State  Away 56       
14   Nebraska  Home 14  L 

그것은 나에게 내 예상 결과 제공 : 하나의 승리가없는 팀 (같은 Baylor)을 위해, 그러나

table(nebraska$Outcome) 
    L W 
7 4 3 

을, 또는 유일한 승리를 가지고, 그것은 단지 나는이 출력처럼 뭔가를 얻을 수 있도록 내가 테이블 함수에 대한 사용자 지정 헤더를 지정하고 싶습니다

table(baylor$Outcome) 
    L 
7 7 

: 나에게 뭔가를 제공

table(baylor$Outcome) 
    L W 
7 7 0 

나는 테이블 함수 호출에 인수 dnn를 전달하려했지만, 다음과 같은 코드에서 오류가 발생합니다 : 이름에

> table(baylor$Outcome,dnn = c("W","L","")) 

오류 (DN) < - DNN : '이름'속성 [3]은 벡터 [1]과 동일한 길이 여야합니다.

어떻게하면 이러한 wins와 loss를 올바르게 표로 정리할 수 있습니까?

답변

2

이 시도 :

with(rle(sort(nebraska$Outcome)), 
    data.frame(W = max(0, lengths[values == "W"]), 
       L = max(0, lengths[values == "L"]))) 
# W L 
#1 3 4 
1

tidy 워크 플로우에 따라, 나는 ...

library(dplyr) 
library(tidyr) 

df <- nebraska %>% 
    group_by(Teams, Outcome) %>% 
    summarise(n = n()) %>% 
    spread(Outcome, n) %>% 
    select(-c(`<NA>`)) 

# # A tibble: 8 x 3 
# # Groups: Teams [8] 
#    Teams  L  W 
# *    <chr> <int> <int> 
# 1 Arkansas State NA NA 
# 2   Illinois NA NA 
# 3   Nebraska  4  3 
# 4 Northern Illinois NA NA 
# 5  Ohio State NA NA 
# 6   Oregon NA NA 
# 7   Rutgers NA NA 
# 8   Wisconsin NA NA 

제공합니다 ... 나는 나 자신을 도움이되지 수도 있지만 꽤과 knitr::kablekableExtra

library(knitr) 
library(kableExtra) 

df %>% 
    kable("html") %>% 
    kable_styling(bootstrap_options = c("striped", "hover")) 

enter image description here

2

저는 이것이 그렇게 복잡하지 않아야한다고 생각합니다. baylor$Outcomefactor으로 설정하고 table으로 설정하면됩니다. 예컨대 :

# example data 
baylor <- data.frame(Outcome = c("L","L","L")) 

것은 그 다음은 그냥 :

baylor$Outcome <- factor(baylor$Outcome, levels=c("","L","W")) 
table(baylor$Outcome) 

# L W 
#0 3 0