我如何找到女性的中位数/中位数(任何其他此类事物)?我已经尝试了一些代码来访问女性数据,但是没有成功。任何帮助都非常感谢。
> jalal <- read.csv("jalal.csv", header=TRUE,sep=",")
> which(jalal$sex==F)
integer(0)
> jalal
age sex weight eye.color hair.color
1 23 F 93.8 blue black
2 21 M 180.8 amber gray
3 22 F 196.5 hazel gray
4 22 M 256.2 amber black
5 21 M 219.6 blue gray
6 16 F 152.1 blue gray
7 21 F 183.3 gray chestnut
8 18 M 179.1 brown blond
9 15 M 206.1 blue white
10 19 M 211.6 brown blond
11 20 F 209.4 blue white
12 21 M 194.0 brown auburn
13 22 F 204.1 green black
14 21 F 157.4 hazel red
15 15 F 238.0 green gray
16 20 F 154.8 gray gray
17 16 F 245.8 gray gray
18 23 M 198.2 gray red
19 19 M 169.1 green brown
20 24 M 198.0 green gray
> subset(jalal, subset=(sex =F)) -> females
> females
[1] age sex weight eye.color hair.color
<0 rows> (or 0-length row.names)
> subset(jalal, subset=(sex ==F)) -> females
> females
[1] age sex weight eye.color hair.color
<0 rows> (or 0-length row.names)
这是jalal.csv中的内容:
"age","sex","weight","eye.color","hair.color"
23,"F",93.8,"blue","black"
21,"M",180.8,"amber","gray"
22,"F",196.5,"hazel","gray"
22,"M",256.2,"amber","black"
21,"M",219.6,"blue","gray"
16,"F",152.1,"blue","gray"
21,"F",183.3,"gray","chestnut"
18,"M",179.1,"brown","blond"
15,"M",206.1,"blue","white"
19,"M",211.6,"brown","blond"
20,"F",209.4,"blue","white"
21,"M",194,"brown","auburn"
22,"F",204.1,"green","black"
21,"F",157.4,"hazel","red"
15,"F",238,"green","gray"
20,"F",154.8,"gray","gray"
16,"F",245.8,"gray","gray"
23,"M",198.2,"gray","red"
19,"M",169.1,"green","brown"
24,"M",198,"green","gray"
您正在寻找aggregate
。这是一个按性别返回年龄和体重中位数的论坛:
aggregate(cbind(age, weight) ~ sex, data=jalal, FUN=median)
## sex age weight
## 1 F 20.5 189.9
## 2 M 21.0 198.1
要获取仅包含女性的数据框,以下是语法[
:
jalal[jalal$sex == 'F',]
注意周围的引号'F'
。裸F
手段FALSE
。这就是为什么第二个subset
表达式失败的原因。
subset(jalal, subset=(sex =='F'))
## age sex weight eye.color hair.color
## 1 23 F 93.8 blue black
## 3 22 F 196.5 hazel gray
## 6 16 F 152.1 blue gray
...
在评论中,要求提供一种蓝眼睛妇女均值的方法。第一种方法是将数据框过滤到只蓝眼睛的人:
aggregate(cbind(age, weight) ~ sex, data=jalal[jalal$eye.color == 'blue',], FUN=mean)
## sex age weight
## 1 F 19.66667 151.7667
## 2 M 18.00000 212.8500
但这似乎有点骇人听闻,毕竟,我们并未过滤女性的数据框。因此,这是一个通过性别和眼睛颜色给出平均年龄和体重的公式。由此,您可以找到蓝眼睛的女人,绿眼睛的男人等的均值:
aggregate(cbind(age, weight) ~ sex + eye.color, data=jalal, FUN=mean)
## sex eye.color age weight
## 1 M amber 21.50000 218.5000
## 2 F blue 19.66667 151.7667
## 3 M blue 18.00000 212.8500
## 4 M brown 19.33333 194.9000
## 5 F gray 19.00000 194.6333
## 6 M gray 23.00000 198.2000
## 7 F green 18.50000 221.0500
## 8 M green 21.50000 183.5500
## 9 F hazel 21.50000 176.9500
请注意,此处的第2行和第3行与先前表达式中的结果匹配。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句