如何在 R 中从列表中抽取唯一的数值?
我们知道,R 中的列表可以包含不同数据类型但又具有相同元素的多个元素。无论我们的元素是相同类型还是不同类型,我们都可能希望对列表使用唯一值进行子集化,特别是在我们相信值必须相同时的情况下。为此,我们可以使用 unique 函数。
示例
考虑以下列表 −
x1<-sample(1:10,50,replace=TRUE) x2<-rpois(50,5) x3<-rpois(50,10) x4<-rbinom(50,10,0.7) List1<-list(x1,x2,x3,x4) List1
输出
[[1]] [1] 1 3 10 8 10 3 9 1 8 4 6 5 3 9 2 10 10 9 9 6 1 1 2 4 3 [26] 10 7 6 1 1 2 9 3 6 9 9 3 9 7 8 10 10 5 3 5 2 6 2 10 1 [[2]] [1] 6 9 12 4 4 6 3 7 5 3 5 5 4 5 3 2 6 2 7 4 2 10 1 3 7 [26] 2 4 8 6 2 8 2 3 7 3 2 9 6 8 6 10 3 5 4 5 6 4 7 4 8 [[3]] [1] 12 11 18 10 13 8 12 11 10 13 9 7 10 9 11 13 12 10 10 4 12 18 14 9 12 [26] 9 11 5 12 10 11 9 12 9 4 7 12 9 11 14 8 14 17 10 10 12 12 10 10 9 [[4]] [1] 8 5 8 10 6 7 4 7 7 6 8 8 5 6 6 7 6 7 6 7 7 8 8 7 8 [26] 5 6 7 5 8 8 7 8 8 7 8 7 6 8 6 9 7 7 6 5 6 7 6 7 9
在列表 List1 中查找唯一元素 −
示例
unique(unlist(List1,use.names=FALSE))
输出
[1] 1 3 10 8 9 4 6 5 2 7 12 11 18 13 14 17
我们来看另一个示例 −
示例
a<-rpois(50,2) b<-sample(1:20,50,replace=TRUE) c<-sample(1:50,100,replace=TRUE) d<-rpois(100,2) e<-round(runif(100,2,5),0) f<-round(rnorm(25),0) g<-sample(1:5,100,replace=TRUE) h<-sample(5:10,100,replace=TRUE) i<-rnorm(20) j<-rpois(100,50) List2<-list(a,b,c,d,e,f,g,h,i,j) List2
输出
[[1]] [1] 5 3 2 3 2 3 0 2 1 2 0 4 1 3 2 2 2 1 4 2 2 4 2 4 2 4 2 2 3 4 2 0 1 1 2 1 3 2 [39] 0 2 3 1 4 2 0 2 0 1 0 3 [[2]] [1] 10 19 10 15 4 14 4 9 20 1 12 13 4 12 4 5 15 6 7 18 9 6 1 7 4 [26] 19 13 5 20 6 16 4 17 7 9 8 1 17 2 16 14 8 9 10 14 10 1 18 4 11 [[3]] [1] 12 24 45 8 41 13 11 35 17 43 8 21 36 18 2 31 3 44 17 22 41 36 48 18 21 [26] 12 22 39 45 14 17 36 41 19 27 17 21 49 12 27 21 47 14 37 44 21 38 46 40 42 [51] 41 45 41 1 48 37 34 14 1 13 41 47 4 43 26 36 9 45 47 31 33 9 14 47 46 [76] 47 33 11 27 6 28 31 24 17 36 10 23 16 14 6 18 29 37 6 11 42 38 15 20 29 [[4]] [1] 0 1 1 2 4 8 4 2 2 2 1 1 1 4 0 2 1 0 4 2 2 1 1 3 4 2 5 2 1 1 2 5 1 3 0 2 1 [38] 3 3 1 2 3 0 1 0 1 5 4 1 4 0 3 4 0 0 5 2 0 6 1 7 3 3 3 1 6 0 0 1 2 1 2 2 3 [75] 3 2 3 0 2 2 1 1 0 4 3 4 2 1 1 1 1 2 0 1 4 0 1 5 1 1 [[5]] [1] 5 2 4 5 5 3 4 4 4 5 4 4 4 2 4 3 4 2 2 3 3 3 5 4 5 3 4 4 3 4 5 4 2 3 3 4 3 [38] 4 5 3 2 2 2 3 4 3 4 4 5 2 2 3 3 3 3 4 2 4 3 3 4 3 3 5 3 2 4 4 3 3 3 3 5 3 [75] 2 3 3 3 5 3 4 5 4 3 3 4 3 3 3 2 3 4 2 4 4 2 5 5 3 4 [[6]] [1] 0 -1 0 1 -1 0 1 1 0 1 0 1 1 0 -1 0 0 1 0 0 1 2 0 1 1 [[7]] [1] 3 4 1 5 3 2 3 2 1 1 5 4 2 2 4 3 3 5 1 5 1 1 3 1 5 3 4 1 3 4 4 2 1 2 4 5 3 [38] 5 1 3 4 2 4 3 4 4 5 4 4 5 4 2 4 3 4 4 5 1 2 2 1 3 2 4 2 4 1 3 2 2 3 5 5 5 [75] 4 3 3 2 1 3 3 1 4 2 5 2 4 1 2 2 1 5 3 3 5 4 3 5 4 5 [[8]] [1] 10 6 5 5 5 5 9 8 6 7 6 9 8 6 8 7 6 8 9 7 7 7 10 6 7 [26] 6 10 10 6 6 8 7 10 10 5 5 9 7 9 10 9 8 8 9 5 8 10 8 8 10 [51] 10 6 5 10 5 7 6 7 9 10 6 6 10 6 10 10 10 10 10 9 8 8 8 7 5 [76] 5 5 5 7 6 10 7 10 7 8 10 8 7 7 9 7 7 9 5 7 9 7 5 7 7 [[9]] [1] -0.51557607 0.35591960 -0.41632268 -1.93573666 1.25093096 0.77053093 [7] 0.22564669 -1.15962836 -0.31592282 -0.81024610 -1.29726892 1.39639256 [13] -0.47600048 -0.15439720 -1.48831101 -0.71676607 0.87284911 -0.60246531 [19] -0.48863810 -0.09974965 [[10]] [1] 57 50 42 60 59 55 43 46 46 42 39 65 51 52 46 56 43 38 56 45 56 32 50 48 59 [26] 44 42 50 36 56 51 43 48 56 50 42 44 47 39 40 46 52 33 56 49 50 46 50 54 52 [51] 51 45 39 64 51 41 54 56 57 47 59 47 43 54 60 58 61 57 46 39 50 53 65 48 50 [76] 55 47 48 55 42 54 45 42 59 45 45 48 54 54 53 45 48 53 37 60 46 45 52 48 45
示例
unique(unlist(List2,use.names=FALSE))
输出
[1] 5.00000000 3.00000000 2.00000000 0.00000000 1.00000000 4.00000000 [7] 10.00000000 19.00000000 15.00000000 14.00000000 9.00000000 20.00000000 [13] 12.00000000 13.00000000 6.00000000 7.00000000 18.00000000 16.00000000 [19] 17.00000000 8.00000000 11.00000000 24.00000000 45.00000000 41.00000000 [25] 35.00000000 43.00000000 21.00000000 36.00000000 31.00000000 44.00000000 [31] 22.00000000 48.00000000 39.00000000 27.00000000 49.00000000 47.00000000 [37] 37.00000000 38.00000000 46.00000000 40.00000000 42.00000000 34.00000000 [43] 26.00000000 33.00000000 28.00000000 23.00000000 29.00000000 -1.00000000 [49] -0.51557607 0.35591960 -0.41632268 -1.93573666 1.25093096 0.77053093 [55] 0.22564669 -1.15962836 -0.31592282 -0.81024610 -1.29726892 1.39639256 [61] -0.47600048 -0.15439720 -1.48831101 -0.71676607 0.87284911 -0.60246531 [67] -0.48863810 -0.09974965 57.00000000 50.00000000 60.00000000 59.00000000 [73] 55.00000000 65.00000000 51.00000000 52.00000000 56.00000000 32.00000000 [79] 54.00000000 64.00000000 58.00000000 61.00000000 53.00000000
广告