如何在R中将一个向量随机分成n个不同长度的向量?

要将一个向量随机拆分为 n 个不同长度的向量,我们可以使用 sample 函数并将 repl 参数设置为 TRUE。

例如,如果我们有一个大小为 100 的名为 X 的向量,那么我们可以使用以下命令将其随机分成 10 个不同长度的向量 -

split(X,sample(10,100,repl=TRUE))

示例 1

要将向量随机拆分为 n 个不同长度的向量,请使用以下代码 -

x<-rpois(100,5)
x

创建以下向量 -

[1] 5 8 6 0 7 7 3 2 9 7 2 6 7 3 6 5 6 6 3 5 10 2 7 2 6
[26] 4 4 5 2 5 5 5 6 7 8 9 1 5 5 4 4 3 5 2 4 8 3 9 3 10
[51] 2 6 6 9 1 6 3 5 5 9 5 5 7 5 2 6 4 6 3 7 7 8 6 7 2
[76] 3 1 7 7 3 2 6 5 4 4 9 11 5 4 5 4 4 8 6 4 3 4 6 10 4

要将向量 x 拆分为十个不同长度的向量,请将以下代码添加到上述代码段中 -

x<-rpois(100,5)
split(x,sample(10,100,repl=TRUE))
输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

$`1`
[1] 7 7 5 9 1 6 9 3 7 7 4 5 8 4

$`2`
[1] 8 6 6 6 4 5 6 9 1 4 5 3 4 2 1 2 4

$`3`
[1] 6 5 6

$`4`
[1] 0 3 6 5 2 5 5 2 5 2 7 3 4 3 10

$`5`
[1] 2 8 10 6 4 4

$`6`
[1] 5 6 7 5 3 2 4 3 9 6 3 7

$`7`
[1] 7 6 5 5 6

$`8`
[1] 9 6 4 8 4 3 7 6 11 6 4

$`9`
[1] 2 5 7 3 5 7 9 4

$`10`
[1] 2 7 2 3 10 5 8 5 5

示例 2

要将向量随机拆分为 n 个不同长度的向量,请使用以下代码 -

y<-rnorm(50)
y

创建以下向量 -

[1] -0.65895028 -0.56707992 -1.75246557 2.40114713 0.59733276 -0.30155878
[7] 0.88613249 0.22332336 -0.45062795 1.45375437 0.73950598 -0.39335499
[13] 0.15894151 0.31798103 0.33446413 -0.98776965 -1.15817727 0.63471168
[19] -0.31250471 -0.72164519 -1.42849948 -0.17601294 -0.70228905 0.53074750
[25] -1.35596326 1.14057361 0.14610718 0.72637322 -2.12426937 0.12014845
[31] -0.69264761 -0.46707848 0.28632956 -0.42512666 0.67937220 -0.62717506
[37] 0.49865571 -0.97706141 -0.09706441 -0.43790237 0.29795639 1.18133791
[43] 0.02667289 -1.15689193 -0.24730001 -1.70261107 0.05087556 0.82064067
[49] 0.84783593 -0.37130613

要将向量 y 拆分为十个不同长度的向量,请将以下代码添加到上述代码段中 -

y<-rnorm(50)
split(y,sample(10,50,repl=TRUE))
输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

$`1`
[1] 1.1405736 0.2863296 0.6793722 -1.7026111 0.8478359

$`2`
[1] 0.3179810 0.1461072 0.4986557

$`3`
[1] 0.22332336 0.73950598 0.15894151 -0.09706441 1.18133791 -1.15689193
[7] -0.24730001

$`4`
[1] 2.4011471 0.5973328 0.5307475 -0.9770614

$`5`
[1] 0.3344641 -0.3125047 -0.6926476

$`6`
[1] -0.56707992 0.88613249 -0.98776965 -0.70228905 -0.43790237 0.05087556
[7] 0.82064067

$`7`
[1] -0.6589503 0.6347117 -1.4284995 0.7263732

$`8`
[1] -1.75246557 1.45375437 -0.39335499 -0.72164519 -2.12426937 0.12014845
[7] -0.62717506 0.29795639 0.02667289

$`9`
[1] -0.450628 -1.158177 -1.355963

$`10`
[1] -0.3015588 -0.1760129 -0.4670785 -0.4251267 -0.3713061