繁体   English   中英

使用 dplyr 和 rowwise 采样

[英]sample with dplyr and rowwise

这是我的例子:

library(dplyr)

n_experiments <- 1000
a <- sample(1:3, n_experiments, replace = T)
b <- sample(1:3, n_experiments, replace = T)


my_df <- data.frame(a = a, b= b)
set.seed(7);my_df <- my_df %>% rowwise() %>% 
  mutate(col_1 = sample(setdiff(c(1,2,3), unique(c(a,b ))),1),
         col_2 = sample(setdiff(c(1,2,3), unique(c(a,b ))),1),
         set =I(list(unique(c(a,b )))),
         set_diff = I(list(setdiff(c(1,2,3), unique(c(a,b ))))),
  )

不幸的是,我不知道如何让每个人都重现相同的示例,但这是我在计算机上得到的输出

df

第一行显示col_1col_2不同,而我希望它们相同。 此外,我希望从set_diff列中采样col_1col_2 有人可以帮我澄清我的错误吗?

第一行显示 col_1 和 col_2 不同,而我希望它们相同。

set.seed(7)确保每次运行脚本时,它都会创建相同的my_df 这并不意味着每次运行sample ,它都会采样相同的数字,因此col_1col_2不需要相同。 但是,如果您运行代码两次,两者都会得到相同的col_1

我希望从 set_diff 列中采样 col_1 和 col_2。

sample的文档:如果 x 的长度为 1,是数字(在 is.numeric 的意义上)并且 x >= 1,则通过样本进行采样从 1:x 开始。 因此,如果set_diff等于 3,则从c(1,2,3)抽取样本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM