如何在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

以上是 如何在R中对列表的一个或多个子元素进行子集化? 的全部内容, 来源链接: utcz.com/z/345363.html

回到顶部