如果R資料框中某些列是分類的,如何找到列的標準差?


如果R資料框中某些列是分類的,要找到列的標準差,我們可以按照以下步驟操作:

  • 首先,建立一個數據框。

  • 然後,使用plyr包中的numcolwise函式來查詢某些列為分類列時的列標準差。

示例1

建立資料框

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

Group<-sample(c("I","II","III","IV"),25,replace=TRUE)
Num1<-sample(1:50,25)
Num2<-sample(1:50,25)
df1<-data.frame(Group,Num1,Num2)
df1

輸出

執行上述指令碼後,會生成以下輸出(由於隨機化,此輸出在您的系統上可能會有所不同):

   Group Num1 Num2
1  IV    30   18
2  III   26    1
3  II    38    6
4  II    37    7
5  II    49   22
6  I      7   47
7  II    34   23
8  III   23   44
9  IV    24   11
10 II    36   28
11 II    31   13
12 IV    27    8
13 I     22   20
14 IV    25   38
15 IV    44   15
16 III   43    5
17 I     21   29
18 III   40   48
19 I     46   41
20 IV     8   36
21 IV    20   27
22 III   16   24
23 II    15    9
24 I     48   30
25 IV     3   39

如果某些列是分類的,則查詢列標準差

使用plyr包中的numcolwise函式查詢資料框df1中數值列的列標準差:

Group<-sample(c("I","II","III","IV"),25,replace=TRUE)
Num1<-sample(1:50,25)
Num2<-sample(1:50,25)
df1<-data.frame(Group,Num1,Num2)
library(plyr)
numcolwise(sd)(df1)

輸出

    Num1    Num2
1 13.57424 14.9295

示例2

建立資料框

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

Categories<-sample(c("First","Second","Third"),25,replace=TRUE)
Score<-sample(1:10,25,replace=TRUE)
Price<-sample(1:5,25,replace=TRUE)
df2<-data.frame(Categories,Score,Price)
df2

輸出

執行上述指令碼後,會生成以下輸出(由於隨機化,此輸出在您的系統上可能會有所不同):

   Categories Score Price
1  Second     10     5
2  Third       5     3
3  Second     10     4
4  Third       2     3
5  Third       1     1
6  First       4     2
7  First       6     3
8  Second      3     4
9  Second      2     4
10 Third       8     3
11 First       8     1
12 Second      8     3
13 First       2     2
14 First       5     1
15 First      10     3
16 Third       7     3
17 Second      4     2
18 Second      7     2
19 Second      2     5
20 First       5     1
21 Third      10     3
22 Second     10     4
23 Third       2     5
24 Third       4     3
25 First       3     4

如果某些列是分類的,則查詢列標準差

使用plyr包中的numcolwise函式查詢資料框df2中數值列的列標準差:

Categories<-sample(c("First","Second","Third"),25,replace=TRUE)
Score<-sample(1:10,25,replace=TRUE)
Price<-sample(1:5,25,replace=TRUE)
df2<-data.frame(Categories,Score,Price)
library(plyr)
numcolwise(sd)(df2)

輸出

     Score    Price
1 3.006659 1.670329

更新於: 2021年11月8日

125 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告