如何在R数据框中找到唯一的行?
R数据帧中的唯一行意味着在整个数据帧中,该行中的所有元素都不会以相同的组合重复。用简单的话说,如果我们有一个名为df的数据帧,其中包含3列和5行,则特定行中的所有值都不会在其他任何行中重复。当我们在数据集中有很多重复的行时,可能需要搜索这种类型的行。为此,我们可以使用dplyr包的group_by_all函数,如以下示例所示。
例1
考虑以下数据帧-
> x1<-rpois(20,1)输出结果> x2<-rpois(20,1)
> x3<-rpois(20,1)
> df1<-data.frame(x1,x2,x3)
> df1
x1 x2 x31 1 0 2
2 2 1 2
3 1 0 1
4 0 1 0
5 0 0 1
6 1 1 1
7 0 0 0
8 0 1 1
9 0 0 0
10 1 0 1
11 2 2 2
12 1 2 1
13 2 0 2
14 0 1 0
15 0 1 1
16 1 0 1
17 0 0 2
18 1 1 1
19 4 2 0
20 2 2 0
加载dplyr软件包并在df1中查找唯一的行-
> library(dplyr)输出结果> df1%>%group_by_all%>%count
# A tibble: 14 x 4
# Groups: x1, x2, x3 [14]
x1 x2 x3 n<int> <int> <int> <int>
1 0 0 0 2
2 0 0 1 1
3 0 0 2 1
4 0 1 0 2
5 0 1 1 2
6 1 0 1 3
7 1 0 2 1
8 1 1 1 2
9 1 2 1 1
10 2 0 2 1
11 2 1 2 1
12 2 2 0 1
13 2 2 2 1
14 4 2 0 1
例2
> y1<-sample(c("Yes","No"),20,replace=TRUE)输出结果> y2<-sample(c("Yes","No"),20,replace=TRUE)
> df2<-data.frame(y1,y2)
> df2
y1 y21 No Yes
2 No Yes
3 No No
4 Yes No
5 No No
6 Yes Yes
7 No No
8 Yes Yes
9 No No
10 No No
11 No Yes
12 No Yes
13 Yes No
14 No Yes
15 No No
16 Yes No
17 Yes No
18 No Yes
19 No Yes
20 Yes No
在df2中查找唯一的行-
> df2%>%group_by_all%>%count输出结果# A tibble: 4 x 3
# Groups: y1, y2 [4]
y1 y2 n<int> <int> <int>
1 No No 6
2 No Yes 7
3 Yes No 5
4 Yes Yes 2
范例3
> z1<-sample(1:4,20,replace=TRUE)输出结果> z2<-sample(1:4,20,replace=TRUE)
> df3<-data.frame(z1,z2)
> df3
z1 z21 1 4
2 2 3
3 1 4
4 1 3
5 4 3
6 2 3
7 3 2
8 1 3
9 1 3
10 1 4
11 4 1
12 2 1
13 4 4
14 4 4
15 3 3
16 4 2
17 4 1
18 4 2
19 2 1
20 1 3
在df3中查找唯一的行-
> df3%>%group_by_all%>%count输出结果# A tibble: 10 x 3
# Groups: z1, z2 [10]
z1 z2 n
<int> <int> <int>1 1 3 4
2 1 4 3
3 2 1 2
4 2 3 2
5 3 2 1
6 3 3 1
7 4 1 2
8 4 2 2
9 4 3 1
10 4 4 2
以上是 如何在R数据框中找到唯一的行? 的全部内容, 来源链接: utcz.com/z/319774.html