我有一個長度爲偶數的矢量。如何將矢量轉換爲R中的列表?
vec = c(1,3,2,4,5,6)
我想將其轉換成這樣的列表,其中每2個連續號碼放入子組件。
[[1]]
[1] 1 3
[[2]]
[1] 2 4
[[3]]
[1] 5 6
必須有一個簡單的方法來做到這一點。如果這樣做更容易,也可以將矩陣轉換爲這樣的列表。
我有一個長度爲偶數的矢量。如何將矢量轉換爲R中的列表?
vec = c(1,3,2,4,5,6)
我想將其轉換成這樣的列表,其中每2個連續號碼放入子組件。
[[1]]
[1] 1 3
[[2]]
[1] 2 4
[[3]]
[1] 5 6
必須有一個簡單的方法來做到這一點。如果這樣做更容易,也可以將矩陣轉換爲這樣的列表。
你可以使用split()
split(vec, (seq_along(vec)-1) %/% 2)
或者,如果你想去一個矩陣,再
library(magrittr) # for %>%
matrix(vec, nrow=2) %>% split(., col(.))
分裂會做:
> vec = c(1,3,2,4,5,6)
> split.size <- 2
> split(vec, rep(seq(len=length(vec)/split.size), each=split.size))
$`1`
[1] 1 3
$`2`
[1] 2 4
$`3`
[1] 5 6
使用lapply:
lapply(1:(length(vec)/2),FUN=function(x)c(vec[(x*2)-1],vec[x*2]))
或者通過中間矩陣(和data.frame ...):
unname(as.list(as.data.frame(matrix(vec,nrow=2))))
這是真棒!謝謝! – wen 2015-01-09 20:42:27