r - 随机化 R 中的两组数字,而不是在组之间重复值
问题描述
我有这个文件:
ID
1
1
1
3
3
3
7
7
7
我需要随机分配两组,(1,2,3)和(5,15,25)。
为此,我使用了这个:
set.seed(1109201)
df %>%
group_by(ID) %>%
dplyr::mutate(set1=sample(c(1,2,3), size=n(), replace=F),set2=sample(c(5,15,25), size=n(), replace=F))
我得到了这个:
ID set1 set2
1 1 15
3 1 25
7 1 25
1 2 5
3 2 15
7 2 5
1 3 25
3 3 5
7 3 15
但我需要不同的set2
inset1
和值ID
,如下所示:
ID set1 set2
1 1 15
3 1 25
7 1 5
1 2 5
3 2 15
7 2 25
1 3 25
3 3 5
7 3 15
Set2
不能重复ID
或set1
一些建议来控制这 2 套?
解决方案
将您的dplyr
代码更改为以下内容。使用“group_by()”步骤将使第二次采样仅在组内发生。
set.seed(1109201)
df %>%
group_by(ID) %>%
dplyr::mutate(set1=sample(c(1,2,3), size=n(), replace=F)) %>%
group_by(set1) %>%
mutate(set2=sample(c(5,15,25), size=n(), replace=F)) %>%
ungroup()
# A tibble: 8 x 3
ID set1 set2
<dbl> <dbl> <dbl>
1 1 2 15
2 1 3 5
3 1 1 25
4 3 3 15
5 3 2 5
6 3 1 5
7 7 2 25
8 7 3 25
推荐阅读
- php - 数组值放入方括号 [ ]
- c - c编程,c书中的数据结构,困惑
- angular - 使用 FormArray 重置表单时删除字段错误
- python - django 表单中的动态字段
- laravel - laravel 来自单个查询的多个结果
- html - 让徽标出现在导航栏的右侧
- javascript - JS/Vue:如何为美国自动完成选择下拉菜单?
- swift4.2 - iOS 12 存在(fromrootviewcontroller)导致应用程序冻结
- python - 为什么 pd.Series([np.nan]) | pd.Series([True]) 评估为 False?
- javascript - 从php返回数组值(图像文件名到javascript)