我正在尝试创建一个表,用另一个变量汇总几个分类变量(使用频率和比例).我想使用dplyr包来做到这一点.
之前的Stack Overflow讨论部分涉及我正在寻找的内容: 使用dplyr的相对频率/比例和计算某个组的相对频率.
使用mtcars数据集,如果我只想查看gear按am类别的比例,这就是输出的样子:
mtcars %>%
group_by(am, gear) %>%
summarise (n = n()) %>%
mutate(freq = n / sum(n))
# am gear n freq
# 1 0 3 15 0.7894737
# 2 0 4 4 0.2105263
# 3 1 4 8 0.6153846
# 4 1 5 5 0.3846154
Run Code Online (Sandbox Code Playgroud)
但是,我实际上不仅要在同一个表中查看gearsby am,还要分别查看carbby am和cylby am.如果我将代码修改为:
mtcars %>%
group_by (am, gear, carb, cyl) %>%
summarise (n = …Run Code Online (Sandbox Code Playgroud) 我有一个长格式的分层数据框,其中每一行代表关系,其中许多可以属于一个人.以下是小示例数据集的代码:
df <- data.frame(id = as.factor(c(1,1,1,2,2,3,4,4)),
partner = c(1,2,3,1,2,1,1,2),
kiss = as.factor(c("Yes", "No", "No", "No", "No", "Yes", "Yes", "No")))
id partner kiss
1 1 1 Yes
2 1 2 No
3 1 3 No
4 2 1 No
5 2 2 No
6 3 1 Yes
7 4 1 Yes
8 4 2 No
Run Code Online (Sandbox Code Playgroud)
我想在这个数据集中创建一个新的因子变量,指示该人(由'id变量表示)是否从未亲吻过他们的任何"伙伴".换句话说,如果这个人与他们的任何一个伙伴有一个吻,那么新的变量将表示"是" - 他们从未与任何伴侣发过吻.这是我认为应该是这样的:
id partner kiss neverkiss
1 1 1 Yes No
2 1 2 No No
3 1 3 No No
4 2 1 No …Run Code Online (Sandbox Code Playgroud) 我有一个长数据集,它由多个插补(假设10个插补)产生的几个数据集组成。它们具有标识插补的id变量。我想在每个这些估算数据集上引导10个数据集。引导程序完成后,我要在每个模型上运行模型(100个插补引导程序组合)。
在此示例中,我不确定是使用该broom::bootstrap()功能还是该modelr::bootstrap()功能。此外,分组似乎在我的管道中丢失了。
这是使用mtcars数据集的可重现示例:
library(tidyverse)
library(broom)
cars <- mtcars %>%
mutate(am = as.factor(am)) %>% # This is standing in for my imputation id variable
group_by(am)
Source: local data frame [32 x 11]
Groups: am [2]
# A tibble: 32 x 11
mpg cyl disp hp drat wt qsec vs am gear carb
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <fctr> <dbl> <dbl>
1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
2 21.0 …Run Code Online (Sandbox Code Playgroud)