如何在 R 中子集化列表的一个或多个子元素?
一个列表包含不同类型的元素,并且每个元素都可以包含不同的元素。为了子集化这些子元素,我们可以使用 sapply 函数并使用 c 来子集化相应子元素的数量。例如,如果我们有一个包含五个元素的列表,并且每个元素都有十个子元素,那么我们可以从子元素中提取第 1、2、3 等元素。
示例
考虑以下列表:
x1<-LETTERS[1:20] x2<-sample(1:50,20) x3<-rpois(20,5) x4<-rnorm(20) List<-list(x1,x2,x3,x4) List
输出
[[1]] [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" [20] "T" [[2]] [1] 42 34 22 5 47 17 10 50 46 12 19 40 39 26 49 21 43 16 28 31 [[3]] [1] 5 6 4 7 4 2 6 5 5 4 3 4 6 7 12 10 5 5 4 2 [[4]] [1] 1.12451278 0.61614998 -0.92794642 0.65635700 2.42697739 1.27161636 [7] -0.64559672 0.08409151 -0.50431128 0.76662433 0.89623914 0.59773245 [13] 0.80662859 -2.56529294 0.56187367 0.54384064 -0.77754871 -1.67570110 [19] 0.21918446 1.04775386
子集化列表的第 1、2 和 3 个子元素:
示例
sapply(List,"[",c(1,2,3))
输出
[,1] [,2] [,3] [,4] [1,] "A" "42" "5" "1.12451278481473" [2,] "B" "34" "6" "0.616149983434114" [3,] "C" "22" "4" "-0.927946420385339"
以类似的方式进行子集化:
示例
sapply(List,"[",c(1:5))
输出
[,1] [,2] [,3] [,4] [1,] "A" "42" "5" "1.12451278481473" [2,] "B" "34" "6" "0.616149983434114" [3,] "C" "22" "4" "-0.927946420385339" [4,] "D" "5" "7" "0.656357003744367" [5,] "E" "47" "4" "2.42697739177831"
示例
sapply(List,"[",c(1:5,7))
输出
[,1] [,2] [,3] [,4] [1,] "A" "42" "5" "1.12451278481473" [2,] "B" "34" "6" "0.616149983434114" [3,] "C" "22" "4" "-0.927946420385339" [4,] "D" "5" "7" "0.656357003744367" [5,] "E" "47" "4" "2.42697739177831" [6,] "G" "10" "6" "-0.645596715535233"
示例
sapply(List,"[",c(1,3,5,7,9,11,13,15,17,19))
输出
[,1] [,2] [,3] [,4] [1,] "A" "42" "5" "1.12451278481473" [2,] "C" "22" "4" "-0.927946420385339" [3,] "E" "47" "4" "2.42697739177831" [4,] "G" "10" "6" "-0.645596715535233" [5,] "I" "46" "5" "-0.504311282950169" [6,] "K" "19" "3" "0.896239139202067" [7,] "M" "39" "6" "0.806628585616475" [8,] "O" "49" "12" "0.561873666241118" [9,] "Q" "43" "5" "-0.777548711788973" [10,] "S" "28" "4" "0.219184464626918"
让我们看另一个例子:
示例
y1<-runif(50,5,10) y2<-rexp(50,5) y3<-rpois(50,5) y4<-rbinom(50,10,0.5) y5<-rnorm(50,2,5) y6<-sample(1:10,50,replace=TRUE) New_List<-list(y1,y2,y3,y4,y5,y6) New_List
输出
[[1]] [1] 5.803367 6.089679 8.353850 6.553303 6.888362 9.339823 8.210219 9.192319 [9] 8.000832 6.570291 9.849118 5.782829 9.047976 8.780683 5.700685 8.056263 [17] 9.254796 9.025764 7.015314 5.377605 5.209807 9.203259 8.614667 9.482647 [25] 7.483367 5.337287 7.545549 5.533780 8.444888 8.343176 5.414887 5.977233 [33] 6.176886 5.207822 5.764009 6.368321 9.953098 6.155332 9.951671 8.708229 [41] 7.450868 5.054433 5.778852 7.402094 9.201947 5.729420 9.009465 6.462985 [49] 7.791356 9.183894 [[2]] [1] 0.250019025 0.009724108 0.076594136 0.033039729 0.111726985 0.405952372 [7] 0.092882909 0.828488324 0.706934078 0.065782993 0.259104316 0.115519376 [13] 0.149173330 0.058378296 0.047328890 0.065369682 0.256626112 0.334837013 [19] 0.014795295 0.069345691 0.243743518 0.142329779 0.398242615 0.355403943 [25] 0.066698090 0.182716005 0.405173355 1.324708591 0.071726505 0.068690068 [31] 0.081411721 0.031406139 0.289635785 0.014949952 0.033212856 0.034007776 [37] 0.232678199 0.040067871 0.209419578 0.022348736 0.377370970 0.236765560 [43] 0.347200382 0.140650937 0.037227610 0.122573781 0.098753316 0.061054679 [49] 0.457099983 0.269695165 [[3]] [1] 6 8 2 3 5 2 3 7 7 2 5 3 4 7 4 7 2 6 9 6 1 7 9 4 8 9 6 6 5 3 6 6 4 2 7 4 2 7 [39] 8 4 9 5 4 5 4 5 3 1 6 5 [[4]] [1] 8 3 6 7 7 5 4 3 6 3 4 3 3 4 5 6 1 6 7 3 4 5 5 6 3 5 5 8 6 6 6 6 7 5 4 5 7 6 [39] 5 6 4 7 2 6 3 4 4 3 5 7 [[5]] [1] 3.5555483 3.0150004 -2.3301461 -2.2768877 9.8853457 -0.3610741 [7] -0.8233241 -1.8213037 10.2790774 8.3444067 1.2147512 8.3433860 [13] -1.8563349 8.1101542 2.8981252 6.8148275 5.8198725 2.1595851 [19] 5.3660102 4.6578388 -1.8347568 -5.9426960 3.0356322 4.0896445 [25] 1.3474482 -0.6345953 5.2339709 -0.5880485 2.7042428 7.0862668 [31] 5.2520788 -1.4256616 6.8537118 -3.4600929 5.7622532 4.2848103 [37] 8.4462159 -1.6567224 -5.3483274 -1.6955801 -9.6959590 5.2263219 [43] 4.1314087 -7.7071415 -0.3637044 5.6304400 7.4015354 6.5949796 [49] 3.2027058 2.3075319 [[6]] [1] 5 5 6 4 5 4 10 3 7 6 6 2 9 8 9 4 2 9 9 2 8 2 6 9 7 [26] 6 5 3 6 4 2 2 10 5 9 5 7 10 6 5 7 2 3 5 8 2 8 1 7 7
示例
sapply(New_List,"[",c(1:10))
输出
[,1] [,2] [,3] [,4] [,5] [,6] [1,] 5.803367 0.250019025 6 8 3.5555483 5 [2,] 6.089679 0.009724108 8 3 3.0150004 5 [3,] 8.353850 0.076594136 2 6 -2.3301461 6 [4,] 6.553303 0.033039729 3 7 -2.2768877 4 [5,] 6.888362 0.111726985 5 7 9.8853457 5 [6,] 9.339823 0.405952372 2 5 -0.3610741 4 [7,] 8.210219 0.092882909 3 4 -0.8233241 10 [8,] 9.192319 0.828488324 7 3 -1.8213037 3 [9,] 8.000832 0.706934078 7 6 10.2790774 7 [10,] 6.570291 0.065782993 2 3 8.3444067 6
广告