我有一个长度为偶数的矢量。如何将矢量转换为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