簡體   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