问题描述
我在多个环境中组织了数据框,每个环境都组织在列表中。我现在想从一组给定的数据帧名称中搜索每个数据帧,确定该名称是否存在于每个环境的特定列表名称中,如果是,则将该对象复制到目标环境的目标列表中。>
在下面的示例中,我创建了 2 个环境 A 和 B,其中应该应用搜索,环境 Z 作为结果环境。
关于本地环境的内容:A 和 B 在一个或两个列表中都有一些 df。列表名称(I 和 II)指的是某个分析阶段 I 和 II。主列表并不总是同时存在于本地环境中,如果在列表 II 中找到数据帧,则应停止在本地环境中的搜索(如果没有,则应搜索列表 I)。 重要的是,如果重新应用该函数,应该覆盖输出对象。
# Create Environments
Env_A <- new.env(parent = emptyenv())
Env_B <- new.env(parent = emptyenv())
# Environments to apply search ####
Env_list_search <- c(Env_A,Env_B)
# Target Environment
Env_Z <- new.env(parent = emptyenv())
# Create objects to search for (within lists)
Env_A$I$df_A <- "details df_A"
Env_A$I$df_B <- "details df_B"
Env_A$II$df_A <- "details df_A"
Env_B$I$df_C <- "details df_C"
Env_B$II$df_B <- "details df_B"
# Scope of dataframes to search for:
Dataframe_search <- c("df_A","df_C")
我的想法是为搜索创建两个向量:
上面的搜索应该会导致 Env_Z 显示: II$df_A 和 II$df_C
我的想法是在 for 循环(用于数据帧搜索)中创建一个 for 循环(用于环境搜索),但我被困在设置中:
我的问题:
- 如何在对象“Env_list_search”中引用本地环境的名称
- 如何在循环中引用本地环境
- 如何在循环内创建循环
for(i in Dataframe_search) {
for(j in Env_list_search) {
# When dataframes occurs in list II
if(has_name(j$II,Dataframe_search[[i]]) == T) {
Env_Z$II[[Dataframe_search[[i]] <- j$II$Dataframe_search[[i]]
return(
Env_Z = Env_Z
)
} else {
# When dataframes occurs in list I
if(has_name(j$I,Dataframe_search[[i]]) == T) {
Env_Z$I[[Dataframe_search[[i]] <- j$I$Dataframe_search[[i]]
#)
return(
Env_Z = Env_Z
)
} else {
return()
}
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)