具有dplyr并按行排列的样本

问题描述 投票:0回答:1

这是我的示例:

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不同,而我希望它们是相同的。此外,我希望从col_1列中采样col_2set_diff。有人可以帮助我澄清我的错误吗?

r dplyr sample rowwise
1个回答
1
投票

第一行显示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)提取样本。

© www.soinside.com 2019 - 2024. All rights reserved.