如何通过增加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

dat
dat几乎肯定有比这更简单的方法,但我认为这是可行的。我不得不使用
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