我的每个团队都有一个数据框,如下所示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]
的长度相同
有人能告诉我如何正确制表这些输赢吗?
答案 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