我有一个数据框...
df <- tibble(
id = 1:10,
family = c("a","a","b","b","c", "d", "e", "f", "g", "h")
)
家庭最多只能包含 2 个成员(因此他们是个人或成对的)。
对于个人(只有一行的家庭,即 id = 5:10),我想创建一个名为“随机”的列,将 50% 的条目随机分配为 1,其余为 0。所有其他行(属于有 2 个成员的家庭)也应该等于 0。
到最后,数据应如下所示(取决于 50% 的行分配了 1)...
df <- tibble(
id = 1:10,
family = c("a","a","b","b","c", "d", "e", "f", "g", "h"),
random = c(0, 0, 0, 0, 1, 0, 1, 1, 0, 0)
)
我主要使用 Tidyverse,并希望将其包含在管道中。
我目前正在尝试类似...
df %>%
group_by(family) %>%
mutate(random = if(n() == 1) *not sure what goes here* else 0)