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

时间:2017-11-01 11:57:59

标签: r

我有这个载体:

 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

3 个答案:

答案 0 :(得分:2)

使用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

答案 1 :(得分:0)

> 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

答案 2 :(得分:0)

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

那是:

 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]