我有一个问题,也许这很奇怪。 所以,例如,我有N个运行R终端。我在每个中执行相同的代码。因此,我需要具有相同的存储区域,可以被所有终端使用,并且我可以存储所有终端的共享变量。如果只共享所有内存 - 这对我来说也是一个很好的解决方案。 有可能吗?
例如,让我们有2个R控制台并行工作。
第一个控制台代码:
a <- 5;
b <- 6;
第二个控制台代码:
c <- 7;
d <- 8;
最好的变体是.GlobalEnv在两个R控制台中都包含a,b,c,d。 那么,R是否包含任何包,它允许我写这样的东西(伪代码):
第一个控制台
valNames <- ls(globalenv());
sapply(1:length(valNames), function(i) assign.UMAMemory(valNames[i], get(valNames[i]));
第二个控制台
valNames <- ls(globalenv());
sapply(1:length(valNames), function(i) assign.UMAMemory(valNames[i], get(valNames[i]));
之后我会在UMAMemory中找到a,b,c,d。
如果我需要在同一控制台环境中添加变量,我可以编写这样的代码:
totalNames <- names(UMAMemory);
sapply(1:length(totalNames), function(i) assign(totalNames[i], get.UMAMemory(totalNames[i]));
是的,它还需要相同的屏障机制来排除写入冲突。