如何根据 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
我有一个数据集,我想重新排列它以便更加和谐并以更简单的方式计算均值和频率。
举个例子,我有一个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