如何基于R数据帧中的组列选择第一行和最后一行?

在数据分析中数据的提取是必要的,因为提取有助于我们保留有关数据集的重要信息。此重要信息也可以是组的第一行和最后一行,我们也可能希望将这些行用于其他类型的分析,例如比较组之间的初始和最后数据值。我们可以使用dplyr包的slice函数根据组列提取或选择第一行和最后一行。

示例

Consider the below data frame:

> x1<-rep(1:4,each=10)

> x2<-rpois(40,5)

> df1<-data.frame(x1,x2)

> head(df1,12)

输出结果

  x1 x2

1  1  3

2  1  4

3  1  6

4  1  6

5  1  3

6  1  4

7  1  7

8  1  8

9  1  7

10 1  2

11 2  8

12 2  7

示例

> tail(df1,12)

输出结果

x1 x2

29 3 4

30 3 5

31 4 4

32 4 6

33 4 7

34 4 5

35 4 5

36 4 4

37 4 9

38 4 4

39 4 3

40 4 6

加载dplyr软件包-

> library(dplyr)

Attaching package: ‘dplyr’

以下对象被'package:stats'屏蔽-

filter, lag

以下对象从'package:base'被屏蔽-

intersect, setdiff, setequal, union

根据组列x1选择第一行和最后一行-

示例

> df1%>%group_by(x1)%>%slice(c(1,n()))

# A tibble: 8 x 2

# Groups: x1 [4]

输出结果

   x1 x2

<int> <int>

1 1 3

2 1 2

3 2 8

4 2 4

5 3 5

6 3 5

7 4 4

8 4 6

让我们看另一个例子-

示例

> y1<-rep(c("A","B","C"),each=10)

> y2<-rnorm(30)

> df2<-data.frame(y1,y2)

> head(df2,12)

输出结果

   y1 y2

1 A -1.1640927

2 A 0.3146504

3 A -1.5213974

4 A -1.3728970

5 A -0.9964678

6 A -0.5022738

7 A -0.4225463

8 A -0.3501037

9 A 0.3043838

10 A -1.5216102

11 B -0.2425732

12 B 0.5554217

示例

> tail(df2,12)

输出结果

   y1 y2

19 B 0.30172320

20 B 1.68341427

21 C 0.55127997

22 C -1.77840803

23 C 0.03001296

24 C -1.19246335

25 C 0.03612258

26 C -0.35468216

27 C -0.63579743

28 C -1.90074403

29 C 0.50072577

30 C 0.31911138

示例

> df2%>%group_by(y1)%>%slice(c(1,n()))

# A tibble: 6 x 2

# Groups: y1 [3]

输出结果

   y1 y2

<fct> <dbl>

1 A -1.16

2 A -1.52

3 B -0.243

4 B 1.68

5 C 0.551

6 C 0.319

以上是 如何基于R数据帧中的组列选择第一行和最后一行? 的全部内容, 来源链接: utcz.com/z/348989.html

回到顶部