如何简写以下重复的R coredata赋值代码?
R代码简写方案
你可以用R的批量处理函数避免重复赋值,下面是两种常用实现:
方案1:和原逻辑完全一致,直接生成core_ts0到core_ts5全局变量
用lapply批量处理+list2env批量赋值:
list2env( lapply( setNames(paste0("ts", 0:5), paste0("core_ts", 0:5)), function(var) coredata(get(var)) ), envir = .GlobalEnv )
说明:这段代码会自动生成和你逐行赋值完全相同的6个全局变量,无需手动逐行写赋值语句
方案2:更规范的写法,将结果存储为命名列表
如果后续需要批量操作这些处理后的数据,更建议存在统一列表里,避免全局变量冗余:
# 批量获取ts0到ts5的coredata结果,存为命名列表 core_ts_list <- lapply(mget(paste0("ts", 0:5)), coredata)
使用说明:后续可以通过core_ts_list$ts0、core_ts_list[["ts1"]]的方式读取对应结果,需要单独赋值某个变量时再按需取出即可
内容的提问来源于stack exchange,提问作者Mariza Costa-Cabral
相关产品推荐
相关产品推荐

