如何找到R中因子水平的中位数?
当我们有序数据或连续数据有离群值时,计算中心趋势中位数的第二个最常用的度量,如果有因子数据,那么我们可能需要找到水平的中位数以将它们相互比较。最简单的方法是使用汇总函数查找汇总。
示例
请看以下包含一个因子列的数据框-
set.seed(191)x1<-as.factor(sample(LETTERS[1:3],20,replace=TRUE))
x2<-sample(1:10,20,replace=TRUE)
df1<-data.frame(x1,x2)
df1
输出结果
x1 x21 B 6
2 C 5
3 B 4
4 C 8
5 B 5
6 B 5
7 A 4
8 C 8
9 C 3
10 C 4
11 B 9
12 A 10
13 C 6
14 C 1
15 A 10
16 A 3
17 A 5
18 C 7
19 B 3
20 C 1
示例
> str(df1)
输出结果
'data.frame': 20 obs. of 2 variables:$ x1: Factor w/ 3 levels "A","B","C": 2 3 2 3 2 2 1 3 3 3 ...
$ x2: int 6 5 4 8 5 5 4 8 3 4 ...
在x1中找到类别的x2中位数-
示例
aggregate(x2~x1,data=df1,summary)
输出结果
x1 x2.Min. x2.1st Qu.x2.Median x2.Mean x2.3rd Qu. x2.Max.1 A 3.000000 4.000000 5.000000 6.400000 10.000000 10.000000
2 B 3.000000 4.250000 5.000000 5.333333 5.750000 9.000000
3 C 1.000000 3.000000 5.000000 4.777778 7.000000 8.000000
让我们看另一个例子-
示例
Temperature<-as.factor(sample(c("Cold","Hot"),20,replace=TRUE))Sales<-sample(50000:80000,20)
df2<-data.frame(Temperature,Sales)
df2
输出结果
Temperature Sales1 Cold 72210
2 Cold 56758
3 Hot 53809
4 Hot 79977
5 Hot 77135
6 Cold 56932
7 Hot 51104
8 Cold 67742
9 Hot 75402
10 Hot 62546
11 Cold 68520
12 Hot 54575
13 Cold 51591
14 Hot 55232
15 Hot 77742
16 Hot 62507
17 Hot 62156
18 Cold 73853
19 Cold 69807
20 Hot 53930
在温度类别中找到销售的中位数-
示例
aggregate(Sales~Temperature,data=df2,summary)
输出结果
Temperature Sales.Min. Sales.1st Qu. Sales.Median Sales.Mean Sales.3rd Qu.1 Cold 51591.00 56888.50 68131.00 64676.62 70407.75
2 Hot 51104.00 54413.75 62331.50 63842.92 75835.25
Sales.Max.
1 73853.00
2 79977.00
以上是 如何找到R中因子水平的中位数? 的全部内容, 来源链接: utcz.com/z/338068.html