我改變了我的問題,使我的問題更加明顯:刪除部分
您好, 我無法弄清楚如何刪除一個矩陣的部分在R:
對於例如
x <- matrix(c(1,2,3,4,5,6,7,8,9), nrow = 3)
現在我想刪除的子矩陣x[2,1:2]
,使最終矩陣(堪比「刪除單元格和向上移動,」在Excel中)類似
1 4 7
3 6 8
NA NA 9.
感謝您的幫助!
我改變了我的問題,使我的問題更加明顯:刪除部分
您好, 我無法弄清楚如何刪除一個矩陣的部分在R:
對於例如
x <- matrix(c(1,2,3,4,5,6,7,8,9), nrow = 3)
現在我想刪除的子矩陣x[2,1:2]
,使最終矩陣(堪比「刪除單元格和向上移動,」在Excel中)類似
1 4 7
3 6 8
NA NA 9.
感謝您的幫助!
矩陣從上到下,從左到右進行索引。你可以設置你想要的任何一個子矩陣到NA:
> x[1:2,1:2] <- NA
> x
[,1] [,2] [,3]
[1,] NA NA 7
[2,] NA NA 8
[3,] 3 6 9
首先移動你想要保留的單元格到第二行。
x[2,1:2] <- x[3,1:2]
然後將你想丟失的那些設置爲NA
。
x[3,1:2] <- NA
或者一步到位,
x[2:3, 1:2] <- x[c(3,NA), 1:2]
結果,無論哪種方式:
> x
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 3 6 8
[3,] NA NA 9
一個基本的功能,這樣做可能看起來像
excelremoveup <- function(mat, rows, cols) {
keep <- which(!(1:nrow(mat)) %in% rows)
keep <- c(keep, rep(NA, nrow(mat)-length(keep)))
mat[, cols] <- mat[keep, cols]
mat
}
你」 d這樣稱呼它。
excelremoveup(x,2,1:2)
您還可以使用data.entry()
編輯矩陣的EXCELL樣方式:
x <- matrix(c(1,2,3,4,5,6,7,8,9), nrow = 3)
data.entry(x)
只需雙擊您要刪除,並刪除它們的數量。但是,我不會建議這超過索引,因爲a。它需要手動輸入和b。你不會學習以這種方式使用R.
我以爲你是R的新手?您可能需要閱讀其中一本手冊。這是我開始時喜歡的一種:
http://cran.r-project.org/doc/contrib/Paradis-rdebuts_en.pdf