R语言如何从tibble迭代创建全局环境可调用的对象
批量生成全局对象的实现方法
你已经构造好了包含变量名和对应值的tibble,直接逐行调用assign()函数往全局环境写入变量即可,两种常用实现方案如下:
方案1:tidyverse风格(推荐)
用purrr::pwalk逐行处理两列数据,直接赋值到全局环境:
library(purrr) # 逐行将Test_Name作为变量名,ave_neg_U_mL作为值写入全局环境 pwalk(neg_tibble_string, ~assign(.x, .y, envir = .GlobalEnv))
执行后即可直接调用生成的对象,比如输入Mouse_IgG_GP_cutoff就能返回对应数值。
方案2:基础R实现
不需要加载额外包,用mapply批量调用assign:
mapply( assign, neg_tibble_string$Test_Name, neg_tibble_string$ave_neg_U_mL, MoreArgs = list(envir = .GlobalEnv) )
原有代码报错原因
你之前使用的mget()是用于读取当前环境中已存在的变量,和你要创建新变量的需求完全不匹配,逻辑走偏才会出现报错。
内容的提问来源于stack exchange,提问作者allisonrs
相关产品推荐
相关产品推荐

