如何使用R中的表函数创建自定义标题?

时间:2017-10-31 03:06:32

标签: r dataframe names

我的每个团队都有一个数据框,如下所示nebraska。但是,这些可怜的团队中的一些人不会获得一次胜利,因此他们的$Outcome列除了L之外什么也没有。

> 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

当我跑table(nebraska$Outcome时,它给了我预期的结果:

table(nebraska$Outcome)
  L W 
7 4 3 

但是,对于没有一场胜利的球队(如Baylor),或者只有胜利,它只会给我一些:

table(baylor$Outcome)
  L
7 7 

我想为表格函数指定自定义标题,以便我可以获得类似此输出的内容:

table(baylor$Outcome)
  L W
7 7 0

我已尝试将参数dnn传递给表函数调用,但它使用以下代码抛出错误:

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

名称错误(dn)< - dnn:          '名称' attribute [3]的长度必须与vector [1]

的长度相同

有人能告诉我如何正确制表这些输赢吗?

3 个答案:

答案 0 :(得分: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 :(得分:2)

我认为这不应该那么复杂。只需将baylor$Outcome设为factor,然后table。 E.g:

# 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 

答案 2 :(得分:1)

遵循C:\Users\Admin\AppData\Local\Google\Chrome\User Data\Default\Extensions 工作流程,我提供......

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::kable

相得益彰
kableExtra

enter image description here