将矢量转换为列表

时间:2014-10-06 22:21:27

标签: r list vector

我想转换矢量

par<-c(0.5, 0.7, 0.9, 1.0, 1.8, 1.5)

到一个包含三个元素的列表中,每个元素由par向量中的两个值组成。本质上,List应该看起来像

 $X1
 [1] 0.5 0.7

 $X2
 [1] 0.9 1.0

 $X3
 [1] 1.8 1.5

as.list(data.frame(matrix(par, ncol=3, byrow=FALSE)))

是我提出的唯一方法,但必须有更好的方法!

2 个答案:

答案 0 :(得分:3)

split可能是最适合此类任务的函数:

split(par, rep(1:3,each=2) )

#$`1`
#[1] 0.5 0.7
#
#$`2`
#[1] 0.9 1.0
#
#$`3`
#[1] 1.8 1.5

答案 1 :(得分:0)

试试这个:

x <-c(0.5, 0.7, 0.9, 1.0, 1.8, 1.5)
lapply(1:(length(x)/2), function(i) x[i:(i+1)])