R Tidyverse-按ID随机化
我有一个像这样的df:R Tidyverse-按ID随机化,r,tidyverse,R,Tidyverse,我有一个像这样的df: id <- c(1,1,2,2,3,3,4,4,5,5) v1 <- c(3,1,2,3,4,5,6,1,5,4) pos <- c(1,2,1,2,1,2,1,2,1,2) df <- data.frame(id,v1,pos) 上面的示例和生成的df,id和pos保持原始创建状态,v1随机化 谢谢 您要找的是sample吗 df %>% group_by(id) %>% mutate(v1 = sample(v
id <- c(1,1,2,2,3,3,4,4,5,5)
v1 <- c(3,1,2,3,4,5,6,1,5,4)
pos <- c(1,2,1,2,1,2,1,2,1,2)
df <- data.frame(id,v1,pos)
上面的示例和生成的df,id和pos保持原始创建状态,v1随机化
谢谢 您要找的是
sample
吗
df %>%
group_by(id) %>%
mutate(v1 = sample(v1, size = length(v1)))
# A tibble: 10 x 3
# Groups: id [5]
id v1 pos
<dbl> <dbl> <dbl>
1 1 3 1
2 1 1 2
3 2 3 1
4 2 2 2
5 3 4 1
6 3 5 2
7 4 1 1
8 4 6 2
9 5 5 1
10 5 4 2
df%>%
分组依据(id)%>%
变异(v1=样本(v1,大小=长度(v1)))
#一个tibble:10x3
#组别:id[5]
id v1位置
1 1 3 1
2 1 1 2
3 2 3 1
4 2 2 2
5 3 4 1
6 3 5 2
7 4 1 1
8 4 6 2
9 5 5 1
10 5 4 2
不完全是,我尝试了样本,但正如您在结果中看到的,v1的前两个值是5和5,实际上应该是3和1或1和3,因为我想根据Id的值进行随机化,所以基本上是根据Id进行随机化分组!是的,这就是答案!标记为已解决…可以,谢谢提醒
df %>%
group_by(id) %>%
mutate(v1 = sample(v1, size = length(v1)))
# A tibble: 10 x 3
# Groups: id [5]
id v1 pos
<dbl> <dbl> <dbl>
1 1 3 1
2 1 1 2
3 2 3 1
4 2 2 2
5 3 4 1
6 3 5 2
7 4 1 1
8 4 6 2
9 5 5 1
10 5 4 2