r - 以长格式创建随机组变量
问题描述
我在 R 中使用长格式数据集工作。我有变量(城市),每一行都是一个带有年龄、性别和更多信息的个体。我现在想创建一个 0 或 1 的变量,并且我希望 0 和 1 的分布接近 50/50 分布。
我的数据看起来与此类似。城市变量的长度不必相同长度。
Sample City Age Sex
1 City_a 15 M
2 City_a 27 F
3 City_a 25 M
4 City_b 20 M
我想得到类似的东西:
Sample City Age Sex Random_g
1 City_a 15 M 0
2 City_a 27 F 0
3 City_a 25 M 1
4 City_b 20 M 1
我开始执行以下操作,但由于我将大小设置为 1 而没有工作,而且我不知道还要设置什么。
library(tidyverse)
df %>%
group_by(City) %>%
mutate(Random_g =sample(c(0,1), replace=TRUE,size=1))
尝试以下哪个有效,但 0/1 的分布可以是任何东西:
df %>%
rowwise() %>%
mutate(Random_g =sample(c(0,1), replace=TRUE,size=1))
编辑:所以我注意到我写它的方式可能有点混乱。一些城市可以有 300 个样本(在这种情况下,我希望有 150 个 0 和 150 个 1),而一些有 1000 个。
Edit2:使用 Jimbou 示例解决了它:
df%>%
group_by(City) %>%
mutate(Rand_g=sample(c(0,1),length(Age), replace=TRUE, prob = c(0.5,0.5)))
解决方案
你可以试试
df%>%
mutate(Rand_g=sample(0:1, n(), replace=TRUE, prob = c(0.5,0.5)))
group_by(City) %>%
没有必要,因为 大数定律表明两组中的数字都收敛到 50%。或者这样......(我不是统计学家)
推荐阅读
- jestjs - 开玩笑的黄色差异是什么意思
- python - 无法让 Jupyter 读取 CSV 文件 - 错误 - 找不到文件
- installation - 如何在安装 .appxbundle 期间红色外部文件
- java - 具有以“ies”或非标准“s”复数形式结尾的复数形式的对象列表的 Java 命名约定是什么?
- python - 当总数不是100%时如何计算百分比?
- javascript - 使用 Barba JS 加载自定义外部 javascript
- git - git 命令在没有 repo 的情况下下载分支文件?
- java - MapStruct 中的通用 Mapper 函数
- powerbi - PowerBI仪表板中一个图表中的多个小条形图
- c# - C# 命名空间只能访问使用 static 关键字声明的方法吗?