2014-10-06 210 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)])