2017-10-31 13 views
1

各チームのデータフレームは、nebraskaのようになります。しかし、これらの貧しいチームの中には勝利が1つしかないものもあるので、$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 

:私のような何かを与える

: - DNN

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

名でエラーが発生しました(DN)<を:私は表関数呼び出しに引数dnnを渡して試してみたが、それは次のコードでエラーをスロー

table(baylor$Outcome) 
    L W 
7 7 0 

'名前'属性[3]はベクトル[1]と同じ長さでなければならない

これらの勝敗を正しく表にする方法を教えてもらえますか?

答えて

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 
関連する問題