随机交换R中数据框中两个不同列中的一定数量的条目

Randomly swap a certain amount of entries in two different columns in a data frame in R

我模拟了二项分布的两个向量。两个向量都有不同的成功概率。现在我将它们合并到一个数据框中,我需要随机交换 50 个列条目(即将 50 个随机条目从 B 放入 A 并将 50 个随机条目从 A 放入 B)。我已经完成了以下操作,但我想知道我是否可以仅在一个代码中执行相同的操作。现在我必须假设 R 从 B 取一些随机值到 A,然后将它们从 A 放回 B,我不想发生这种情况。

test_a <- rbinom(100, 1, 0.2)
test_b <- rbinom(100, 1, 0.5)

a_name <- "A"
b_name <- "B"

test <- data.frame(test_a,test_b)
names(test) <- c(a_name, b_name)


test$A[sample(nrow(test), 50)] <- sample(test$B, 50)
test$B[sample(nrow(test), 50)] <- sample(test$A, 50) 

也许这就是您要找的 -

n <- sample(nrow(test), 50)
test[n, 1:2] <- test[n, 2:1]