R语言如何声明参数为数据框并将字符串匹配为对应数据框对象
你需要使用R的两个基础函数实现字符串和环境对象的映射:
get(对象名字符串):将字符串转换为当前环境中同名的可调用对象assign(对象名字符串, 值):将计算得到的值赋值给当前环境中同名的对象
修正后的循环实现
for(i in 1:aggr_count) { # 拼接得到当前数据框的对象名字符串 obj_name <- paste0("temp", i, ".obj") # 先通过get读取原对象,过滤后通过assign写回同名对象 assign( x = obj_name, value = subset(get(obj_name), subset = nFeature_RNA > 200 & nFeature_RNA < 2500 & percent.mt < .2) ) }
更推荐的批量操作方案
如果后续还需要对这批数据框做其他统一处理,更建议把所有对象放到列表中统一操作,避免反复拼接字符串调用get/assign,代码容错性更高:
# 1. 把所有分散的tempN.obj对象合并到同一个列表 obj_list <- lapply(1:aggr_count, function(i) get(paste0("temp", i, ".obj"))) # 2. 批量完成过滤操作 obj_list <- lapply(obj_list, function(x) { subset(x, subset = nFeature_RNA > 200 & nFeature_RNA < 2500 & percent.mt < .2) }) # 可选:如果需要还原为原来的分散对象名,执行下面的循环 for(i in 1:aggr_count) assign(paste0("temp", i, ".obj"), obj_list[[i]])
内容的提问来源于stack exchange,提问作者Dan Meyer
相关产品推荐
相关产品推荐

