課程
/云計算&大數據
/大數據
/R語言基礎
在數組中,apply(x,c(1,2),mean)具體是怎么計算的?是對數組中1,2維矩陣相乘除第4維得到的嗎?
2016-03-10
源自:R語言基礎 4-2
正在回答
簡單的例子:
l <- array(1:24,dim = c(2,3,4))
> l
, , 1
? ? ?[,1] [,2] [,3]
[1,] ? ?1 ? ?3 ? ?5
[2,] ? ?2 ? ?4 ? ?6
, , 2
[1,] ? ?7 ? ?9 ? 11
[2,] ? ?8 ? 10 ? 12
, , 3
[1,] ? 13 ? 15 ? 17
[2,] ? 14 ? 16 ? 18
, , 4
[1,] ? 19 ? 21 ? 23
[2,] ? 20 ? 22 ? 24
M <- apply(l,c(1,2),mean)
M
[1,] ? 10 ? 12 ? 14
[2,] ? 11 ? 13 ? 15
其中c(1,2) 1代表行,2代表列, M計算方式就是 l的4組數據中 行和列 對應位置的平均值(M[1,1] =(1+7+13+19)/4=10),其他的數據 以此類推
對上面的補充:
#1,3緯度上的數對2緯度來求平均(即除以3)。即,,1的第一行的數據求和除以3。??? > apply(x,c(1,3),mean)
?#2,3緯度上的數對1緯度求平均(即除以2)。即,,1的第一列數據求和除以2??? > apply(x,c(2,3),mean)
?apply(x,c(1,2),mean)
意思是:#1,2緯度上的數對3緯度來求平均。即1,2緯度的,,1中第一條記錄,加上,,2第一條記錄,加上,,3第一條記錄加上,,4第一條記錄求平均。
,,1??? ,,2?? ,,3? ,,4如下:
?? #Rstudio控制臺的內容
? > x <- array(rnorm(2*3*4),c(2,3,4))??? > x??? , , 1????????????? [,1]????? [,2]???? [,3]??? [1,] -1.042544 -1.041521 1.284045??? [2,] -1.618926 -1.196427 2.036937??? , , 2????????????? [,1]????? [,2]?????? [,3]??? [1,]? 0.8827615 0.2443569? 0.4399112??? [2,] -0.6728983 0.1800479 -0.2486564?? ???? , , 3?? ????????????? [,1]?????? [,2]????? [,3]??? [1,] 0.4385233? 0.1771418 -0.514778??? [2,] 0.7612346 -1.4176608 -1.193967??? , , 4????????????? [,1]????? [,2]?????? [,3]??? [1,] 1.4522751 0.7872514 -0.3324009??? [2,] 0.7958228 1.0489825 -0.5487616
那apply是只能沿著一個維度么 能不能沿著兩個維度
x賦值函數中的2*3*4分別對應行*列*組(相對應的維度即為1*2*3)
apply(x,c(1,2),mean)中1,2對應的維度為行*列,不需要考慮組,所以對每組相同位置的所有元素相加后求平均,因此輸出的結果為2行3列的矩陣
同理,apply(x,c(1,3),mean)中1,3對應的維度為行*組,所以分別對每組中的行求平均,因此輸出的結果為2行4列的矩陣(x中有4個組,每組中有2行)
同理,(2,3)就代表列*組了~你自己看看~
就是在數組中1,2維這個平面上對4維求平均?舉個例子? 假設在(,,1)中對應數據 1? ,在(,,2)對應(1,1)數據2 ,在(,,3)中對應數據 3,在(,,4)中對應數據 4 ,最后就是求1 2 3 4 的平均值? 只得到一個二維的結果
舉報
本R語言基礎教程,教你如何在R中操縱自己數據,快速入門
1 回答怎樣帶入數據進行計算?
1 回答數組位數的定義問題
1 回答數組賦值的問題
1 回答【糾正】apply函數的三維數據的例子
2 回答是不是有個函數可以直接計算某列的平均值?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-06-28
簡單的例子:
l <- array(1:24,dim = c(2,3,4))
> l
, , 1
? ? ?[,1] [,2] [,3]
[1,] ? ?1 ? ?3 ? ?5
[2,] ? ?2 ? ?4 ? ?6
, , 2
? ? ?[,1] [,2] [,3]
[1,] ? ?7 ? ?9 ? 11
[2,] ? ?8 ? 10 ? 12
, , 3
? ? ?[,1] [,2] [,3]
[1,] ? 13 ? 15 ? 17
[2,] ? 14 ? 16 ? 18
, , 4
? ? ?[,1] [,2] [,3]
[1,] ? 19 ? 21 ? 23
[2,] ? 20 ? 22 ? 24
M <- apply(l,c(1,2),mean)
M
? ? ?[,1] [,2] [,3]
[1,] ? 10 ? 12 ? 14
[2,] ? 11 ? 13 ? 15
其中c(1,2) 1代表行,2代表列, M計算方式就是 l的4組數據中 行和列 對應位置的平均值(M[1,1] =(1+7+13+19)/4=10),其他的數據 以此類推
2016-12-15
對上面的補充:
#1,3緯度上的數對2緯度來求平均(即除以3)。即,,1的第一行的數據求和除以3。
??? > apply(x,c(1,3),mean)
?#2,3緯度上的數對1緯度求平均(即除以2)。即,,1的第一列數據求和除以2
??? > apply(x,c(2,3),mean)
2016-12-15
?apply(x,c(1,2),mean)
意思是:#1,2緯度上的數對3緯度來求平均。即1,2緯度的,,1中第一條記錄,加上,,2第一條記錄,加上,,3第一條記錄加上,,4第一條記錄求平均。
,,1??? ,,2?? ,,3? ,,4如下:
?? #Rstudio控制臺的內容
? > x <- array(rnorm(2*3*4),c(2,3,4))
??? > x
??? , , 1
????????????? [,1]????? [,2]???? [,3]
??? [1,] -1.042544 -1.041521 1.284045
??? [2,] -1.618926 -1.196427 2.036937
??? , , 2
????????????? [,1]????? [,2]?????? [,3]
??? [1,]? 0.8827615 0.2443569? 0.4399112
??? [2,] -0.6728983 0.1800479 -0.2486564
?? ?
??? , , 3
?? ?
???????????? [,1]?????? [,2]????? [,3]
??? [1,] 0.4385233? 0.1771418 -0.514778
??? [2,] 0.7612346 -1.4176608 -1.193967
??? , , 4
????????????? [,1]????? [,2]?????? [,3]
??? [1,] 1.4522751 0.7872514 -0.3324009
??? [2,] 0.7958228 1.0489825 -0.5487616
2016-11-27
那apply是只能沿著一個維度么 能不能沿著兩個維度
2016-10-26
x賦值函數中的2*3*4分別對應行*列*組(相對應的維度即為1*2*3)
apply(x,c(1,2),mean)中1,2對應的維度為行*列,不需要考慮組,所以對每組相同位置的所有元素相加后求平均,因此輸出的結果為2行3列的矩陣
同理,apply(x,c(1,3),mean)中1,3對應的維度為行*組,所以分別對每組中的行求平均,因此輸出的結果為2行4列的矩陣(x中有4個組,每組中有2行)
同理,(2,3)就代表列*組了~你自己看看~
2016-03-10
就是在數組中1,2維這個平面上對4維求平均?舉個例子? 假設在(,,1)中對應數據 1? ,在(,,2)對應(1,1)數據2 ,在(,,3)中對應數據 3,在(,,4)中對應數據 4 ,最后就是求1 2 3 4 的平均值? 只得到一個二維的結果