首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算嵌套列表中“子级别”的和

如何计算嵌套列表中“子级别”的和
EN

Stack Overflow用户
提问于 2018-01-31 21:16:07
回答 1查看 47关注 0票数 0

我有一个嵌套列表mylist。在mylist的第一级,有4种植被类型。在第二个“水平”中,我对15个土壤水平(称为level1level2等)进行了水分胁迫测量,直到level15为止。

这是我的数据集:

代码语言:javascript
复制
mylist <- structure(list(needleleaf_evergreen_temperate_tree = structure(list(
    layer1 = 0.074844339399475, layer2 = 0.10364235153792, layer3 = 0.139199261740378, 
    layer4 = 0.16641474105245, layer5 = 0.169465314138987, layer6 = 0.144044051642624, 
    layer7 = 0.105600767636715, layer8 = 0.0652887370818433, 
    layer9 = 0.0264351101290891, layer10 = 0.00481604897579532, 
    layer11 = 0.000247537572307209, layer12 = 1.73860803440901e-06, 
    layer13 = 4.8438137437183e-10, layer14 = 6.6619638078275e-16, 
    layer15 = 2.88818224958405e-25), .Names = c("layer1", "layer2", 
"layer3", "layer4", "layer5", "layer6", "layer7", "layer8", "layer9", 
"layer10", "layer11", "layer12", "layer13", "layer14", "layer15"
)), needleleaf_evergreen_boreal_tree = structure(list(layer1 = 0.074844339399475, 
    layer2 = 0.10364235153792, layer3 = 0.139199261740378, layer4 = 0.16641474105245, 
    layer5 = 0.169465314138987, layer6 = 0.144044051642624, layer7 = 0.105600767636715, 
    layer8 = 0.0652887370818433, layer9 = 0.0264351101290891, 
    layer10 = 0.00481604897579532, layer11 = 0.000247537572307209, 
    layer12 = 1.73860803440901e-06, layer13 = 4.8438137437183e-10, 
    layer14 = 6.6619638078275e-16, layer15 = 2.88818224958405e-25), .Names = c("layer1", 
"layer2", "layer3", "layer4", "layer5", "layer6", "layer7", "layer8", 
"layer9", "layer10", "layer11", "layer12", "layer13", "layer14", 
"layer15")), needleleaf_deciduous_boreal_tree = structure(list(
    layer1 = 0.074844339399475, layer2 = 0.10364235153792, layer3 = 0.139199261740378, 
    layer4 = 0.16641474105245, layer5 = 0.169465314138987, layer6 = 0.144044051642624, 
    layer7 = 0.105600767636715, layer8 = 0.0652887370818433, 
    layer9 = 0.0264351101290891, layer10 = 0.00481604897579532, 
    layer11 = 0.000247537572307209, layer12 = 1.73860803440901e-06, 
    layer13 = 4.8438137437183e-10, layer14 = 6.6619638078275e-16, 
    layer15 = 2.88818224958405e-25), .Names = c("layer1", "layer2", 
"layer3", "layer4", "layer5", "layer6", "layer7", "layer8", "layer9", 
"layer10", "layer11", "layer12", "layer13", "layer14", "layer15"
)), c3_irrigated = structure(list(layer1 = 0.0754105781789665, 
    layer2 = 0.106401701696586, layer3 = 0.146857331360997, layer4 = 0.181972345543274, 
    layer5 = 0.191196461077081, layer6 = 0.158267532821584, layer7 = 0.094842247909502, 
    layer8 = 0.0370323148644247, layer9 = 0.00750914382571778, 
    layer10 = 0.000504776733855199, layer11 = 5.5627446227042e-06, 
    layer12 = 3.24337357358994e-09, layer13 = 1.50763789751944e-14, 
    layer14 = 2.43174707104567e-23, layer15 = 1.55216144591354e-37), .Names = c("layer1", 
"layer2", "layer3", "layer4", "layer5", "layer6", "layer7", "layer8", 
"layer9", "layer10", "layer11", "layer12", "layer13", "layer14", 
"layer15"))), .Names = c("needleleaf_evergreen_temperate_tree", 
"needleleaf_evergreen_boreal_tree", "needleleaf_deciduous_boreal_tree", 
"c3_irrigated"))

我需要做的是,对每一种植被类型,对15种土壤水平进行水分胁迫的总和(即,将清单中每一“水平”的所有“亚水平”之和)。

实现这一目标的最佳途径是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-31 22:39:07

只需调用lapply,并且因为嵌套内容在列表中,所以运行unlist将子列表项转换为sum的数字向量。

代码语言:javascript
复制
newlist <- lapply(mylist, function(x) sum(unlist(x)))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48551567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档