如何为R数据帧中的因子变量的每个级别选择第一行?

行比较是数据分析的重要组成部分,有时我们将变量与变量进行比较,将值与值进行比较,将案例或行与另一案例或行进行比较,甚至将完整的数据集与另一数据集进行比较。这是检查数据值的准确性及其一致性所必需的,因此我们必须这样做。为此,我们需要选择所需的行,列等。要为因子变量的每个级别选择第一行,我们可以使用带有!的重复函数。标志。

示例

请看以下数据帧-

> x1<-rep(c(1,2,3,4,5,6,7,8,9,10),each=5)
> x2<-1:50
> x3<-rep(c(LETTERS[1:10]),times=5)
> df<-data.frame(x1,x2,x3)
> head(df,20)
  x1 x2 x3
1  1  1 A
2  1  2 B
3  1  3 C
4  1  4 D
5  1  5 E
6  2  6 F
7  2  7 G
8  2  8 H
9  2  9 I
10 2 10 J
11 3 11 A
12 3 12 B
13 3 13 C
14 3 14 D
15 3 15 E
16 4 16 F
17 4 17 G
18 4 18 H
19 4 19 I
20 4 20 J
> tail(df,20)
x1 x2 x3
31 7 31 A
32 7 32 B
33 7 33 C
34 7 34 D
35 7 35 E
36 8 36 F
37 8 37 G
38 8 38 H
39 8 39 I
40 8 40 J
41 9 41 A
42 9 42 B
43 9 43 C
44 9 44 D
45 9 45 E
46 10 46 F
47 10 47 G
48 10 48 H
49 10 49 I
50 10 50 J

根据因子变量x1的每个级别选择第一行-

> df[!duplicated(df$x1),]
x1 x2 x3
1 1 1 A
6 2 6 F
11 3 11 A
16 4 16 F
21 5 21 A
26 6 26 F
31 7 31 A
36 8 36 F
41 9 41 A
46 10 46 F

根据因子变量x3的每个级别选择第一行-

> df[!duplicated(df$x3),]
x1 x2 x3
1 1 1 A
2 1 2 B
3 1 3 C
4 1 4 D
5 1 5 E
6 2 6 F
7 2 7 G
8 2 8 H
9 2 9 I
10 2 10 J