[英]Calculate mean of colnames and rownames set in matrix in R
抱歉,是否有人在其他地方提出過此要求,但我找不到答案。
我正在嘗試使用colMeans和rowMeans計算我創建的矩陣的平均值。 平均值是我要用來填充矩陣的值,並且已經使用矢量設置了行和列
目前,我的代碼如下所示:
A = matrix(ncol = (14), # number of columns in matrix
nrow = (10), # number of rows in matrix
colMeans(A, na.rm = FALSE, dims = colnames(A)),
rowMeans(A, na.rm = FALSE, dims = rownames(A)),
byrow = TRUE)
colnames(A) c("2","4","6","8","10","12","14","16","18","20","22","24","26","28")
rownames(A) <- c("10","20","30","40","50","60","70","80","90","100")
A
運行此命令將返回具有NA值的矩陣。
預期的輸出將是一個如下所示的矩陣,其中NA值由列數和行數的平均值代替。
例如,第一個交集等於6,即2 + 10/2
2 4 6 8 10 12 14 16 18 20 22 24 26 28
10 NA NA NA NA NA NA NA NA NA NA NA NA NA NA
20 NA NA NA NA NA NA NA NA NA NA NA NA NA NA
30 NA NA NA NA NA NA NA NA NA NA NA NA NA NA
40 NA NA NA NA NA NA NA NA NA NA NA NA NA NA
50 NA NA NA NA NA NA NA NA NA NA NA NA NA NA
60 NA NA NA NA NA NA NA NA NA NA NA NA NA NA
70 NA NA NA NA NA NA NA NA NA NA NA NA NA NA
80 NA NA NA NA NA NA NA NA NA NA NA NA NA NA
90 NA NA NA NA NA NA NA NA NA NA NA NA NA NA
100 NA NA NA NA NA NA NA NA NA NA NA NA NA NA
本質上,這就是您要使用outer
函數所需要的。 請注意, t
轉置矩陣,因此這是您在上面指定的正確方法,它也可以是external outer(B,A, fn)
A<-seq(2,28,2)
B<-seq(10,100,10)
fn<-function(A,B)(A+B)/2
t(outer(A,B, fn))
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
[1,] 6 7 8 9 10 11 12 13 14 15 16 17 18 19
[2,] 11 12 13 14 15 16 17 18 19 20 21 22 23 24
[3,] 16 17 18 19 20 21 22 23 24 25 26 27 28 29
[4,] 21 22 23 24 25 26 27 28 29 30 31 32 33 34
[5,] 26 27 28 29 30 31 32 33 34 35 36 37 38 39
[6,] 31 32 33 34 35 36 37 38 39 40 41 42 43 44
[7,] 36 37 38 39 40 41 42 43 44 45 46 47 48 49
[8,] 41 42 43 44 45 46 47 48 49 50 51 52 53 54
[9,] 46 47 48 49 50 51 52 53 54 55 56 57 58 59
[10,] 51 52 53 54 55 56 57 58 59 60 61 62 63 64
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.