R Tidyverse-通过ID随机化

EGM8686

我有一个像这样的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)

我如何“随机化” v1的值,同时保持“ Id”变量的固有顺序以及“ pos”的值,例如我获得的df具有如下随机值:

id  v1 pos
1   1  1
1   3  2
2   2  1
2   3  2
3   5  1
3   4  2
4   6  1
4   1  2
5   5  1
5   4  2

以上是ID和pos保持原始创建且v1随机化的结果df的示例。

谢谢!

伊恩·坎贝尔

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章