如何通过增加R数据帧中的权重来打破关系?
我需要按照眼睛颜色的逆字母顺序排序,如何通过增加R数据帧中的权重来打破关系?,r,statistics,aggregate,R,Statistics,Aggregate,我需要按照眼睛颜色的逆字母顺序排序,通过增加体重打破领带,然后找出谁是上面第四个男性!aggregate是否具有sort功能?通过增加R中的重量来打破领带意味着什么?你能举例说明答案吗 以下是数据框: 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 haze
通过增加体重打破领带
,然后找出谁是上面第四个男性!aggregate
是否具有sort
功能?通过增加R中的重量来打破领带意味着什么?你能举例说明答案吗
以下是数据框:
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
datdat几乎肯定有比这更简单的方法,但我认为这是可行的。我不得不使用order
两次才能让它工作
jalal <- read.table(text = '
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.0 brown auburn
22 F 204.1 green black
21 F 157.4 hazel red
15 F 238.0 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.0 green gray
', header = TRUE, stringsAsFactors = FALSE)
jalal2 <- jalal[order(jalal$eye.color, -jalal$weight),] # order data frame
jalal3 <- jalal2[order(-1:-nrow(jalal2)),] # reverse order data frame
jalal3
jalal4 <- jalal3[jalal3$sex == 'M',] # select males
jalal4[4,] # select fourth male
age sex weight eye.color hair.color
8 18 M 179.1 brown blond
jalal几乎肯定有比这更简单的方法,但我认为这是可行的。我不得不使用order
两次才能让它工作
jalal <- read.table(text = '
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.0 brown auburn
22 F 204.1 green black
21 F 157.4 hazel red
15 F 238.0 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.0 green gray
', header = TRUE, stringsAsFactors = FALSE)
jalal2 <- jalal[order(jalal$eye.color, -jalal$weight),] # order data frame
jalal3 <- jalal2[order(-1:-nrow(jalal2)),] # reverse order data frame
jalal3
jalal4 <- jalal3[jalal3$sex == 'M',] # select males
jalal4[4,] # select fourth male
age sex weight eye.color hair.color
8 18 M 179.1 brown blond
jalal对使用xtfrm
功能进行小修改-
sorted.jalal <- jalal[with(jalal, order(-xtfrm(eye.color), weight)), ]
sorted.jalal[sorted.jalal$sex == "M", ][4,]
age sex weight eye.color hair.color
8 18 M 179.1 brown blond
sorted.jalal对使用xtfrm
功能进行小修改-
sorted.jalal <- jalal[with(jalal, order(-xtfrm(eye.color), weight)), ]
sorted.jalal[sorted.jalal$sex == "M", ][4,]
age sex weight eye.color hair.color
8 18 M 179.1 brown blond
sorted.jalal>sorted.jalal sorted.jalal
年龄性别体重眼睛颜色头发颜色计数
8 21 F 131.7淡褐色1
12 22米180.4榛栗色1
14 27米208.5淡褐色1
5 20 F 142.7绿栗子1
13 20 F 185.9绿赤褐色1
16 20 F 195.7绿色赤褐色1
17 22米199.1绿-红1
7 23米276.3绿黑1
1 22 F 149.7灰金色1
3 22 F 166.5灰白色1
11 23 F 176.2灰色1
18 19 F 199.5灰色栗色1
10 23米214.1灰色栗色1
20 18米143.9棕色栗色1
6 22米133.7蓝黑1
4 21 F 179.8蓝白1
9 17米194.8蓝棕色1
19 15米267.1蓝棕色1
15 20 F 187.1琥珀色白色1
2 19米250.2琥珀色白色1
>sorted.jalal sorted.jalal
年龄性别体重眼睛颜色头发颜色计数
8 21 F 131.7淡褐色1
12 22米180.4榛栗色1
14 27米208.5淡褐色1
5 20 F 142.7绿栗子1
13 20 F 185.9绿赤褐色1
16 20 F 195.7绿色赤褐色1
17 22米199.1绿-红1
7 23米276.3绿黑1
1 22 F 149.7灰金色1
3 22 F 166.5灰白色1
11 23 F 176.2灰色1
18 19 F 199.5灰色栗色1
10 23米214.1灰色栗色1
20 18米143.9棕色栗色1
6 22米133.7蓝黑1
4 21 F 179.8蓝白1
9 17米194.8蓝棕色1
19 15米267.1蓝棕色1
15 20 F 187.1琥珀色白色1
2 19米250.2琥珀色白色1
您是否查看了顺序
?这意味着您必须首先按眼睛颜色
排序,如果两个人的眼睛颜色相同,则必须按重量
排序@Nishanth这个问题似乎与您提供的链接中的问题不同,这里的数据集首先按字符变量而不是数字变量的相反顺序排序。将字符变量按相反顺序排序作为第一步比我预期的困难得多。虽然可能有一些简单的方法让我难以理解。@MarkMiller是的,我同意你看了顺序了吗
?这意味着你必须先按眼睛颜色进行排序
,如果两个人的眼睛颜色相同,那么就按重量进行排序@Nishanth这个问题似乎与您提供的链接中的问题不同,这里的数据集首先按字符变量而不是数字变量的相反顺序排序。将字符变量按相反顺序排序作为第一步比我预期的困难得多。虽然可能有一些简单的方法让我难以理解。@MarkMiller是的,我同意我没有运行代码,但是为什么过滤结果是女性的呢?我没有运行代码,但是为什么过滤结果是女性的呢?
> sorted.jalal <- jalal[with(jalal, order(eye.color, -weight, decreasing=TRUE)), ]
> sorted.jalal
age sex weight eye.color hair.color count
8 21 F 131.7 hazel brown 1
12 22 M 180.4 hazel chestnut 1
14 27 M 208.5 hazel gray 1
5 20 F 142.7 green chestnut 1
13 20 F 185.9 green auburn 1
16 20 F 195.7 green auburn 1
17 22 M 199.1 green red 1
7 23 M 276.3 green black 1
1 22 F 149.7 gray blond 1
3 22 F 166.5 gray white 1
11 23 F 176.2 gray gray 1
18 19 F 199.5 gray chestnut 1
10 23 M 214.1 gray chestnut 1
20 18 M 143.9 brown chestnut 1
6 22 M 133.7 blue black 1
4 21 F 179.8 blue white 1
9 17 M 194.8 blue brown 1
19 15 M 267.1 blue brown 1
15 20 F 187.1 amber white 1
2 19 M 250.2 amber white 1