繁体   English   中英

将一个向量转换为两个特定长度的向量

[英]Convert a vector to two vectors of specific length

我有这个向量:

 x <-c(0.2, 0.9, 1.5, 3.9, 1.1, 1.6, 0.9, 1.9, 0.5, 4.8,0.5, 0.9, .5, 5.9, 1.1, 1.6, 0.9, 2.9, 0.6, 3.8)

我想将其转换为两个仅包含10数字的子向量。

我想要的预期输出是这样的:

[1] 0.2 0.9 1.5 3.9 1.1 1.6 0.9 1.9 0.5 4.8    
[1] 0.5 0.9 0.5 5.9 1.1 1.6 0.9 2.9 0.6 3.8

使用split()简单解决方案:

x <- c(0.2, 0.9, 1.5, 3.9, 1.1, 1.6, 0.9, 1.9, 0.5, 4.8,0.5, 0.9, .5, 5.9, 1.1, 1.6, 0.9, 2.9, 0.6, 3.8)

lengthOfVector <- 10
res <- split(x, 0:(length(x) - 1) %/% lengthOfVector)

要访问结果,您可以使用res[[1]]

[1] 0.2 0.9 1.5 3.9 1.1 1.6 0.9 1.9 0.5 4.8
> x1=x[seq(1,0.5*length(x))]
> x1
 [1] 0.2 0.9 1.5 3.9 1.1 1.6 0.9 1.9 0.5 4.8
> x2=x[seq(0.5*length(x),length(x))]
> x2
 [1] 4.8 0.5 0.9 0.5 5.9 1.1 1.6 0.9 2.9 0.6 3.8

经过研究,我发现有一种简单的方法可以完成此任务。

那是:

 x <-c(0.2, 0.9, 1.5, 3.9, 1.1, 1.6, 0.9, 1.9, 0.5, 4.8,0.5, 0.9, .5, 5.9, 1.1, 1.6, 0.9, 2.9, 0.6, 3.8)

x1 <- x[1:10]
x2 <- x[2:20] 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM