如果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  III   46    25
2   I    41    39
3  III   4      1
4  IV   32     23
5  IV    2      7
6  III   7     15
7  II   44     48
8  IV   40      3
9  III  36     45
10 III  45     11
11 II   21     10
12 IV   23     47
13 I    12     35
14 III   3     42
15 IV   43     40
16 IV   19     14
17 IV   15      6
18 I    35     38
19 IV   18     34
20 II   20     44
21 III  30     17
22 IV   34     32
23 II   16     18
24 I    14      5
25 I    13     24

查詢某些列為分類變數時的列中位數

使用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(median)(df1)

輸出

  Num1 Num2
1 30   28

示例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      4     3
2  First       2     2
3  Third       4     2
4  Second      2     4
5  Second      4     2
6  First       4     3
7  Third       3     5
8  Third       4     3
9  First       6     1
10 Third       4     1
11 First       5     3
12 Second      8     5
13 Third       4     1
14 Second      5     2
15 Second      6     5
16 Third       7     5
17 Third       6     2
18 Third       3     1
19 Second      1     4
20 Second      7     3
21 Second      4     2
22 Third       4     3
23 Second      1     5
24 First       6     2
25 First       4     3

查詢某些列為分類變數時的列中位數

使用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(median)(df2)

輸出

   Score Price
1    6    4

更新於: 2021年11月8日

157 次瀏覽

開啟您的 職業生涯

完成課程獲得認證

立即開始
廣告

© . All rights reserved.