2014-10-06 209 views
0

我想矢量转换成向量列表

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

转换为具有三个元素,每个元素是从票面矢量由两个值的列表。从本质上说,这份名单是应该看起来像

$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)))

是我想出的唯一办法,但必须有一个更好的办法!

+0

所以你想一个'list'或'matrix'?我真的不确定。 – thelatemail 2014-10-06 22:23:34

+0

我编辑了这个问题,使其更加清晰。 – 2014-10-06 22:24:16

+1

不知道它有什么更好的,但可能:'split(par,rep(1:3,each = 2))'? – thelatemail 2014-10-06 22:27:25

回答

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 
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)])