我正在寻找有关如何从两个现有嵌套列表元素创建新嵌套列表元素的提示。在我正在处理的脚本的当前形式中,我根据输入列表中的元素数量创建了一个名为 tardis 的列表,它有 n 个元素长。在示例中,输入列表 dataLayers 的长度为 2 个元素。
创建 tardis 后,脚本通过从 1200 个 netCDF 文件中读取数据来填充它。tardis 中 'mean' 和 'sd' 的 12 个元素中的每一个都是地理数据的矩阵,例如 tardis[['data']][[decade]][['mean']][[month]], 12 个日历月。当列表完全填充后,我想创建一些派生变量。例如,在下面的代码片段中,我想通过添加 SNOW 和 RAIN 创建一个变量 TOTALPRECIP。在执行此操作时,我想从 SNOW + RAIN 创建 TOTALPRECIP 作为 tardis 中的第三个列表元素,并具有与其他两个元素完全相同的嵌套结构(将它们加在一起并保留结构)。
这可能与 apply 或其相关功能有关吗?
begin <- 1901
end <- 1991
dataLayers <- c("SNOW","RAIN")
tardis<-list()
for (i in 1:length(dataLayers)){
tardis[[dataLayers[i]]]<-list('longName'='timeLord','units'='theDr','data'=list())
for (j in seq(begin,end,10)){
tardis[[dataLayers[[i]]]][['data']][[as.character(j)]]<-list('mean'=vector(mode='list',length=12),'sd'=vector(mode='list',length=12))
}
}
#add SNOW AND RAIN
print(names(tardis))
>[1] "SNOW" "RAIN" "TOTALPRECIP"