如果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
廣告