如何在R資料框中查詢具有相同名稱的列的行標準差?


要查詢R資料框中具有相同名稱的列的行標準差,我們可以按照以下步驟操作:

  • 首先,建立一個包含一些具有相同名稱的列的資料框。

  • 然後,使用tapply以及colnames和sd函式來查詢具有相同名稱的列的行標準差。

示例

建立資料框

讓我們建立一個如下所示的資料框:

df<-
data.frame(x=rpois(25,5),x=rpois(25,1),y=rpois(25,2),y=rpois(25,5),check.names=FALSE)
df

輸出

執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出會因您的系統而異):

   x x y  y
1  4 0 2  9
2  8 3 3  4
3  5 1 1  7
4  3 1 1  5
5  8 1 2  5
6  3 1 1  5
7  3 1 4  5
8  3 1 0  4
9  4 2 1  3
10 7 0 4  2
11 7 1 2  4
12 7 2 2 10
13 5 2 0  1
14 5 0 1  7
15 2 1 1  6
16 7 1 1  8
17 5 0 0  7
18 8 1 1  9
19 6 1 2  9
20 3 0 3  9
21 7 0 4  5
22 7 2 5  5
23 4 0 2  5
24 2 0 4  5
25 2 0 4  4

查詢具有相同名稱的列的行標準差

使用tapply以及colnames和sd函式來查詢資料框df中具有相同名稱的列的行標準差:

df<-
data.frame(x=rpois(25,5),x=rpois(25,1),y=rpois(25,2),y=rpois(25,5),check.names=FALSE)
t(apply(df,1, function(x) tapply(x,colnames(df),sd)))

輸出

         x          y
[1,]  2.8284271 4.9497475
[2,]  1.4142136 0.7071068
[3,]  3.5355339 2.8284271
[4,]  0.0000000 2.1213203
[5,]  2.1213203 4.9497475
[6,]  5.6568542 0.7071068
[7,]  1.4142136 0.7071068
[8,]  4.2426407 1.4142136
[9,]  1.4142136 0.7071068
[10,] 1.4142136 0.0000000
[11,] 4.2426407 2.1213203
[12,] 0.0000000 2.8284271
[13,] 6.3639610 2.8284271
[14,] 0.7071068 0.7071068
[15,] 1.4142136 1.4142136
[16,] 2.1213203 2.8284271
[17,] 4.9497475 4.2426407
[18,] 4.9497475 2.1213203
[19,] 2.1213203 1.4142136
[20,] 2.8284271 3.5355339
[21,] 2.1213203 2.8284271
[22,] 2.1213203 0.7071068
[23,] 1.4142136 3.5355339
[24,] 3.5355339 2.1213203
[25,] 3.5355339 4.9497475

更新於:2021年11月12日

87 次瀏覽

開啟您的職業生涯

完成課程後獲得認證

開始學習
廣告
© . All rights reserved.