如何根据 R 中的结果安排数据集?

How can I rearange a dataset depending on its results in R?

我有一个数据集,我想重新排列它以便更加和谐并以更简单的方式计算均值和频率。

举个例子,我有一个dataset cointain 不同型号的最后一次购物支出:

Observation Model Date Clothing Price in $ Store
# 1 Amy 14 / 01 Top 60 X
# 2 Amy 17 / 03 SKIRT 35 X
# 3 Amy 05 / 05 Skirt 40 X
# 4 Amy 05 / 05 Blouse 70 P
# 5 Claudia 17 / 02 BLOUSE 40 B
# 6 Claudia 17 / 02 Jeans 90 L
# 7 Claudia 21 / 04 Jacket 120 L
# 8 Claudia 22 / 04 TOP 30 X
# 9 Estella 05 / 05 NA 95 L
# 10 Estella 07 / 06 Skirt 40 X
# 11 Estella 08 / 07 Dress 150 H
# 12 Estella 04 / 08 Hat 15 X

如您所见,有些衣服是一样的,但写法不同(这是故意的)。我想重新排列这个 dataset 以使模型保持完全相同的顺序,但组织服装以便它始终按字母顺序开始并在末尾缺少值(衬衫、连衣裙、帽子、夹克、牛仔裤, skirt, NA),不管这个词是怎么写的。换句话说,我想在每个 Model

中重新排序 Clothing

我对使用什么作为代码没有太多想法,所以我无法提供代码...

您只能在 Clothing 列上 sort,然后将其放回您的 df$Clothing

df$Clothing <- sort(df$Clothing, na.last = T)

   Observation   Model    Date Clothing Price in $ Store
1          # 1     Amy 14 / 01   Blouse         60     X
2          # 2     Amy 17 / 03   BLOUSE         35     X
3          # 3     Amy 05 / 05    Dress         40     X
4          # 4     Amy 05 / 05      Hat         70     P
5          # 5 Claudia 17 / 02   Jacket         40     B
6          # 6 Claudia 17 / 02    Jeans         90     L
7          # 7 Claudia 21 / 04    Skirt        120     L
8          # 8 Claudia 22 / 04    Skirt         30     X
9          # 9 Estella 05 / 05    SKIRT         95     L
10        # 10 Estella 07 / 06      Top         40     X
11        # 11 Estella 08 / 07      TOP        150     H
12        # 12 Estella 04 / 08     <NA>         15     X

更新: 似乎 OP 想在每个 Model 中安排 Clothing,这是代码:

library(dplyr)

df %>% group_by(Model) %>% arrange(Clothing, .by_group = T)

# A tibble: 12 × 6
# Groups:   Model [3]
   Observation Model   Date    Clothing `Price in $` Store
   <chr>       <chr>   <chr>   <chr>           <int> <chr>
 1 # 4         Amy     05 / 05 Blouse             70 P    
 2 # 3         Amy     05 / 05 Skirt              40 X    
 3 # 2         Amy     17 / 03 SKIRT              35 X    
 4 # 1         Amy     14 / 01 Top                60 X    
 5 # 5         Claudia 17 / 02 BLOUSE             40 B    
 6 # 7         Claudia 21 / 04 Jacket            120 L    
 7 # 6         Claudia 17 / 02 Jeans              90 L    
 8 # 8         Claudia 22 / 04 TOP                30 X    
 9 # 11        Estella 08 / 07 Dress             150 H    
10 # 12        Estella 04 / 08 Hat                15 X    
11 # 10        Estella 07 / 06 Skirt              40 X    
12 # 9         Estella 05 / 05 NA                 95 L