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


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

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

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

示例1

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

Open Compiler
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拆分为十个不同长度的向量,请将以下代码添加到上面的代码段中:

Open Compiler
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

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

示例2

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

Open Compiler
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拆分为十个不同长度的向量,请将以下代码添加到上面的代码段中:

Open Compiler
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

更新于:2021年11月11日

659 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告