我有这样的反复:
(.*)
如何将其聚合以获得类似的结果:
tibble(
type = c("A", "B", "A", "A", "B", "B", "B"),
place = c(1, 1, 1, 1, 1, 2, 2)
)
答案 0 :(得分:1)
tidyverse
方式。由于我们知道没有B
,因此我不需要在replace_na
中包含B = NA
。
library(dplyr)
library(tidyr)
df1 <- tibble(type = c("A", "B", "A", "A", "B", "B", "B"),
place = c(1, 1, 1, 1, 1, 2, 2))
df1 %>%
group_by(place, type) %>%
summarise(n = n()) %>%
spread(type, n) %>%
replace_na(list(A = 0, B = 0)) %>%
rename(n_A = A, n_B = B)
# A tibble: 2 x 3
place n_A n_B
<dbl> <dbl> <dbl>
1 1. 3. 2.
2 2. 0. 2.
答案 1 :(得分:1)
您可以使用table
table(df1$place,df1$type)
A B
1 3 2
2 0 2