很抱歉,对此有一个简单的解决方法(尽管希望可以解决),但是谷歌搜索和阅读文档似乎没有提供答案。
如果我总结分成多个组的变量,R会在行上全部输出分组。但是,最好将其中之一移到一列。
例如,采用以下代码
state <- c("AL","AL","AL","AL","AL","CA","CA","CA","CA","CA","CA")
week <- c(1,1,2,2,2,1,1,2,2,2,2)
amount <- c(3,2,4,1,3,3,2,5,1,1,2)
df <- data.frame(state,week,amount)
sumTable <- df %>% group_by(week,state) %>% summarize(amountMean = mean(amount))
print(sumTable)
此输出
week state amountMean
<dbl> <chr> <dbl>
1 1 AL 2.5
2 1 CA 2.5
3 2 AL 2.67
4 2 CA 2.25
但是,最好将一组分组放在列中,将一组分组到行中,这样看起来就像:
+------+-------------+
| | Amount |
+------+------+------+
| Week | AL | CA |
+------+------+------+
| 1 | 2.5 | 2.5 |
+------+------+------+
| 2 | 2.67 | 2.25 |
+------+------+------+
(我不在乎格式和内容-只是它出现在该结构中)。
有没有办法像这样按列对输出进行分组?
答案 0 :(得分:0)
您正在描述一个枢轴。您可以为此使用tidyr::pivot_wider
:
tidyr::pivot_wider(sumTable, names_from = state, values_from = amountMean)
#> # A tibble: 2 x 3
#> # Groups: week [2]
#> week AL CA
#> <dbl> <dbl> <dbl>
#> 1 1 2.5 2.5
#> 2 2 2.67 2.25
答案 1 :(得分:0)
我们可以使用A
B
中的A\n
B
xtabs