如何在R中的列表的每个元素中添加新值?

假设我们有一个包含两个元素的列表,并且为这两个元素都获得了一个新值,那么就会出现将这些值添加到原始列表中的问题。这可以借助mapply函数来完成。我们可以轻松地将新值附加到原始值中,但是需要首先创建新值的向量。

例1

List1<−list(x1=rnorm(50),x2=rnorm(50))
new<−list(0.34,0.37)

将新值添加到List1-

示例

List1<−mapply(append,List1,new,SIMPLIFY=FALSE)
List1
输出结果
$x1
[1] −0.21433819 0.34745333 −0.91392492 −1.18555411 −0.99932134 −0.57548735
[7] 1.10651668 0.48454439 −0.99232515 −0.99568362 0.23641052 2.67800406
[13] −0.75788305 1.19569169 −1.15838659 0.73623778 −0.17743427 1.30542832
[19] −1.76846085 −0.59177306 0.17272266 −0.63534109 −0.23215985 −1.67575615
[25] 0.59034063 2.52226746 0.40437735 −0.06360738 −0.53810661 −0.04455344
[31] 0.71511225 −0.35993230 1.29632787 0.13729957 −0.52563320 0.46982761
[37] 0.12234186 −1.23848802 1.29268576 −0.05836899 −0.66205174 −0.07619300
[43] −1.04585532 3.67861858 0.73080674 −1.36358925 −0.78699970 0.41224880
[49] 0.86365984 1.78372714 0.34000000
$x2
[1] −1.008028153 0.753706027 0.339136404 0.394850535 0.822800452
[6] 1.131092940 −0.044501179 −0.247914864 −0.350871896 0.013754292
[11] 0.002728324 0.776690869 −1.002677732 −1.236941825 0.599039509
[16] 0.532717545 0.262159708 −0.373315320 −1.609664791 −2.034626869
[21] 0.563657076 0.440259691 1.690137148 −0.937983631 −1.661222786
[26] 0.325805813 0.111868681 2.189960485 1.200441769 −0.178213068
[31] −0.628382611 −1.777857157 0.893458151 1.009731364 −0.657754484
[36] 0.788648791 −1.343786681 0.993323519 0.021705024 −0.719988792
[41] 0.458443258 −0.624894337 1.466201931 −0.320907500 −1.327935744
[46] 1.397215872 0.352245992 −0.278273447 0.864011297 −0.979787012
[51] 0.370000000

例2

List2<−list(y1=rpois(99,10),y2=rpois(99,10))
new<−list(5,3)

将新值添加到List2-

示例

List2<−mapply(append,List2,new,SIMPLIFY=FALSE)
List2
输出结果
$y1
[1] 9 19 3 6 10 7 6 8 10 3 6 10 11 7 9 11 13 8 10 8 8 11 10 13 9
[26] 15 5 10 11 10 15 14 5 10 5 7 9 14 10 14 9 11 13 13 12 8 9 13 13 7
[51] 13 9 9 9 13 10 9 13 10 8 9 11 7 8 4 9 11 8 14 8 4 8 11 13 15
[76] 9 8 7 13 10 13 7 13 10 5 8 8 11 7 4 7 15 7 5 11 9 10 13 11 5
$y2
[1] 5 10 8 8 5 14 13 5 7 15 14 12 8 6 15 8 9 6 9 9 14 9 7 9 7
[26] 14 12 2 12 10 14 12 13 11 9 11 10 5 10 9 13 8 8 11 11 18 12 8 14 11
[51] 12 14 18 9 9 16 15 7 13 10 12 8 8 10 7 8 6 14 9 9 10 20 11 10 8
[76] 12 6 9 5 12 10 9 9 6 11 10 11 14 8 11 11 11 9 10 6 9 13 11 13 3

范例3

List3<−list(z1=runif(49,2,10),z2=runif(49,5,10))
new<−list(3.24542,7.21421)

将新值添加到List3-

List3<−mapply(append,List3,new,SIMPLIFY=FALSE)
List3
输出结果
$z1
[1] 7.291533 6.972070 3.586818 6.973179 5.138934 7.952336 3.354811 8.508972
[9] 9.436393 7.226165 4.316177 7.212349 2.944707 8.458374 5.844430 6.623924
[17] 8.705829 2.509108 9.074396 3.360153 9.034577 5.679748 9.096813 6.989252
[25] 3.814996 4.227093 8.546505 7.225875 3.246433 4.620028 7.876439 2.746531
[33] 4.588123 3.770730 7.954941 4.840489 5.309890 3.292286 6.110796 6.506668
[41] 9.662596 5.216663 8.697122 6.700522 3.520535 9.827375 8.321387 4.603970
[49] 5.582278 3.245420
$z2
[1] 7.360781 7.984698 9.110684 9.866965 7.821411 7.912576 8.132087 6.343781
[9] 8.635346 5.778531 9.980152 6.572830 5.289732 7.245998 6.681521 8.756547
[17] 9.282966 5.567102 7.823283 9.973521 7.758861 5.727483 9.618834 5.911291
[25] 7.229435 8.783410 7.815542 7.840888 8.514780 7.798654 7.415919 8.948754
[33] 7.046777 7.855829 6.973687 6.351384 9.041160 9.727344 7.731367 7.100542
[41] 6.987909 7.940805 9.893710 7.400530 9.528001 6.247381 8.108900 8.553423
[49] 9.856233 7.214210

例子4

List4<−list(a1=sample(0:9,49,replace=TRUE),a2=sample(0:9,49,replace=TRUE))
new<−list(5,2)

将新值添加到List4-

List4<−mapply(append,List4,new,SIMPLIFY=FALSE)
List4
输出结果
$a1
[1] 2 4 7 0 8 7 8 8 3 5 9 4 6 6 6 5 4 9 7 1 0 7 8 3 3 6 7 2 3 2 2 5 2 4 7 4 2 0
[39] 7 9 3 3 4 6 7 3 4 0 9 5
$a2
[1] 5 7 4 8 9 4 1 8 5 6 9 0 4 2 7 2 6 2 0 1 6 7 3 9 6 8 2 5 4 1 2 3 7 3 5 4 5 1
[39] 5 7 9 9 3 6 4 4 1 8 4 2