2014-05-10 82 views
1

樣本數據的列表:刪除列着R

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

我想滴在列表中的矩陣的第一列,但保留繼續列垂直。 (如[1:N,1]矩陣)

這是我曾嘗試(和其他):

lapply(list.data, function(x) x[,2:ncol(x)]) 

但初始2列矩陣保持翻轉到水平位置。

我想有這樣的:

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

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

回答

4

只需添加drop = FALSE到您的命令,以保持維度屬性不變。

> lapply(list.data, function(x) x[,2:ncol(x), drop = FALSE]) 
[[1]] 
    [,1] [,2] 
[1,] 11 21 
[2,] 13 23 
[3,] 15 25 
[4,] 17 27 
[5,] 19 29 

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