這是我的小問題複製。
listOfColumns<-list(NULL, c(2,3), 5, NULL)
listOfColumns #print for viewing
#output
#[[1]]
#NULL
#[[2]]
#[1] 2 3
#[[3]]
#[1] 5
#[[4]]
#NULL
MyMatrix<-matrix(1:50, nrow=10, ncol=5)
MyMatrix #print for viewing
#output
# [,1] [,2] [,3] [,4] [,5]
#[1,] 1 11 21 31 41
#[2,] 2 12 22 32 42
#[3,] 3 13 23 33 43
#[4,] 4 14 24 34 44
#[5,] 5 15 25 35 45
#[6,] 6 16 26 36 46
#[7,] 7 17 27 37 47
#[8,] 8 18 28 38 48
#[9,] 9 19 29 39 49
#[10,] 10 20 30 40 50
首先,你會想你的子集矩陣,讓你省略給定列數的方法是做
MyMatrix[-columnNumbers]
在R,用來負數子集對應到應該省略的條目。
以下調用輸出的,你想要什麼
MyMatrix[,-unlist(listOfNumbers)]
#output
# [,1] [,2]
# [1,] 1 31
# [2,] 2 32
# [3,] 3 33
# [4,] 4 34
# [5,] 5 35
# [6,] 6 36
# [7,] 7 37
# [8,] 8 38
# [9,] 9 39
# [10,] 10 40
如果你想保持這個結果以備後用,你需要將它存儲(正如大衛·羅賓遜在GOT)
MySmallerMatrix<-MyMatrix[,-unlist(listOfNumbers)]
要確認:這是一個'data.table',而不是'data.frame',對嗎? – 2014-09-06 17:13:41
@DavidRobinson,我糾正了我的錯誤。顯然這個數據結構是一個矩陣。 – PoGibas 2014-09-06 17:17:34
你只是在運行'MyMatrix [, - (unlist(MyList))]'而不是代碼'MyMatrix < - MyMatrix [, - (unlist(MyList))]''? (如果是這樣,那是你的錯誤)。 – 2014-09-06 17:20:18