如何 select 一个随机向量

How to select a random vector

我有 4 个包含整数的向量。

我想根据随机选择的 2 个向量执行计算。

我尝试创建一个包含所有向量的新向量,但 sample() 只给了我每个向量的第一个元素。

我的载体如果有帮助:

A <- c(4, 4, 4, 4, 0, 0)
B <- c(3, 3, 3, 3, 3, 3)
C <- c(6, 6, 2, 2, 2, 2)
D <- c(5, 5, 5, 1, 1, 1)

我想要的输出例如:A, BB, DD, A

在此先感谢您!

如果将向量存储在列表中,这会更容易做到:

vecs <- list(
  A = c(4, 4, 4, 4, 0, 0),
  B = c(3, 3, 3, 3, 3, 3),
  C = c(6, 6, 2, 2, 2, 2),
  D = c(5, 5, 5, 1, 1, 1)
)

idx <- sample(1:length(vecs), 2, replace = F)

sampled <- vecs[idx]

sampled

$D
[1] 5 5 5 1 1 1

$B
[1] 3 3 3 3 3 3

然后您可以使用 sampled[[1]]sampled[[2]].

访问您的两个采样向量,无论它们的名称如何

列出清单:

LIST = list(A,B,C,D)
names(LIST) = c("A","B","C","D")

这为您提供了列表中的 2 个示例

sample(LIST,2)

例如,要添加它们,请执行:

Reduce("+",sample(LIST,2))

你首先需要做一个 or a ,你可以在上面做sample()size=表示每个样本中你想要的向量数量,这里是2

列表

> LIST <- list(A, B, C, D) 
> sample(LIST, size = 2)
[[1]]
[1] 3 3 3 3 3 3

[[2]]
[1] 4 4 4 4 0 0

数据框

> df <- data.frame(A, B, C, D)
> sample(df, size = 2)
  B C
1 3 6
2 3 6
3 3 2
4 3 2
5 3 2
6 3 2

我认为你在错误的对象上采样。