-2

我想从 5 个不同的类中找到两个类的所有可能样本。我正在尝试这个:

x <- c(A = 23, B = 21, C = 29, D = 17, E = 18)

mean (x)

sd (x)

sample(x)

sample(x, 2, replace = FALSE, prob = NULL)

sample(x, 5, replace = FALSE, prob = NULL)

但我认为它没有给我所有可能样本的数量是错误的

4

3 回答 3

2

尝试这个

install.packages("gtools")
library(gtools)
permutations(length(x), 2, x)
#       [,1] [,2]
#  [1,]   17   18
#  [2,]   17   21
#  [3,]   17   23
#  [4,]   17   29
#  [5,]   18   17
#  [6,]   18   21
#  [7,]   18   23
#  [8,]   18   29
#  [9,]   21   17
# [10,]   21   18
# [11,]   21   23
# [12,]   21   29
# [13,]   23   17
# [14,]   23   18
# [15,]   23   21
# [16,]   23   29
# [17,]   29   17
# [18,]   29   18
# [19,]   29   21
# [20,]   29   23

如果您只想知道可能的排列数量,请使用@Floo0s 答案或执行类似的操作

nrow(permutations(length(x), 2, x))
# [1] 20
于 2015-01-12T12:56:49.843 回答
1

如果你有 5 节课。有 5 超过 2 的可能性。

http://en.wikipedia.org/wiki/Binomial_coefficient

在 R 中,这是函数choose计算的内容。

所以

choose(length(x),2)

答案:10 种可能的组合(如果顺序无关紧要,那么 (A,B) 等于 (B,A))

如果订单很重要,那就是

choose(length(x),2) * factorial(2)

答案:20

正如博维尔上校所说。要找到所有这些组合,请使用combn

于 2015-01-12T12:41:10.460 回答
1

也许通过使用:

combn(x, 2)

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]   23   23   23   23   21   21   21   29   29    17
[2,]   21   29   17   18   29   17   18   17   18    18

矩阵的列将为您提供所有可能的组合,而忽略 order

或使用包combinat

于 2015-01-12T12:42:04.650 回答