使用R反转列表中的行

时间:2014-05-10 11:36:35

标签: r list matrix

示例数据:

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>1row==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

1 个答案:

答案 0 :(得分: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