如何基于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 x21 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 x229 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 y21 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 y219 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