2014-05-10 32 views
0

样本数据:反向顺序排在列表中,其中R

list.data <- list(matrix(seq(1,30,2),5,3),matrix(seq(1,10,2),5,2)) 

NumOnly <- lapply(list.data, function(x) x[,2:ncol(x), drop = FALSE]) 

转置矩阵

TranData <- lapply(NumOnly, function(x) t(x)) 

反向/翻转顺序

DataModel <- lapply(TranData, function(x) ifelse(nrow(x)==1,x,apply(x, 2, rev))) 
head(DataModel) 

如何扭转行顺序为矩阵row>1并以row==1开始。

以上DataModel输出不知何故只给出了第一项...

我想获得:

[[1]] 
    [,1] [,2] [,3] [,4] [,5] 
[1,] 21 23 25 27 29 
[2,] 11 13 15 17 19 

    [[2]] 
    [,1] [,2] [,3] [,4] [,5] 
[1,] 1 3 5 7 9 

回答

3

我会内[使用rev,像这样:

> lapply(TranData, function(x) x[rev(sequence(nrow(x))), , drop = FALSE]) 
[[1]] 
    [,1] [,2] [,3] [,4] [,5] 
[1,] 21 23 25 27 29 
[2,] 11 13 15 17 19 

[[2]] 
    [,1] [,2] [,3] [,4] [,5] 
[1,] 1 3 5 7 9 
+0

完美, 谢谢! – Maximilian