我将使用mtcars 和dplyr 进行模拟。
library(dplyr)
quant <- c("mpg", "disp", "hp")
qual <- c("vs", "am", "gear")
mtcars %>%
group_by(cyl) %>%
summarize(across(quant, mean), across(qual, ~ names(sort(table(.),decreasing=TRUE))[1]))
# # A tibble: 3 x 7
# cyl mpg disp hp vs am gear
# <dbl> <dbl> <dbl> <dbl> <chr> <chr> <chr>
# 1 4 26.7 105. 82.6 1 1 4
# 2 6 19.7 183. 122. 1 0 4
# 3 8 15.1 353. 209. 0 0 3
names(table(.))[1] 是您的定性变量的“模式”。我们可以通过一个快速表来验证它是否符合我们的预期:
xtabs(~cyl+vs, data=mtcars)
# vs
# cyl 0 1
# 4 1 10
# 6 3 4
# 8 14 0
xtabs(~cyl+am, data=mtcars)
# am
# cyl 0 1
# 4 3 8
# 6 4 3
# 8 12 2
xtabs(~cyl+gear, data=mtcars)
# gear
# cyl 3 4 5
# 4 1 8 2
# 6 2 4 1
# 8 12 0 2
表示对于4、6、8档,最常见的vs分别是1、1和0;对于am:1、0 和 0;对于gear:4、4 和 3。这些对应于上面返回中的值。
在您的情况下,将cyl 更改为neighborhood,并确保您的qual 和quant 列出了所需的变量。