【发布时间】:2014-02-10 10:52:19
【问题描述】:
我正在寻找一种方法来save() 在 R 中“即时”使用不同名称的变量(请耐心等待!我很确定这不是重复的......)。这是我想要实现的示例:
AAA = 1
BBB = 2
XXX = 3
YYY = 4
save(AAA=XXX, BBB=YYY, file="tmp.Rdat")
# does NOT save a variable AAA to file with value 3 in it, which is the aim...
基本上我希望save() 函数获取XXX 的值并将其保存到名为AAA 的变量下的文件中。请注意,这不是关于重命名变量的问题:我当然可以在保存之前重命名变量 XXX,例如AAA = XXX 然后是 save(AAA, ..., file=...) 但这当然会与其余代码中 AAA 的值混淆。
显而易见的方法是创建临时变量,然后恢复值:
AAA = 1
BBB = 2
XXX = 3
YYY = 4
AAAtmp = AAA; BBBtmp = BBB # record values of AAA, BBB
AAA = XXX; BBB = YYY
save(AAA, BBB, file="tmp.Rdat")
AAA = AAAtmp; BBB = BBBtmp # restore values of AAA, BBB
...但是每个人都会同意这很混乱(尤其是有更多变量时)。
这一直困扰着我一段时间,我的感觉是函数save()不能做我想做的事。所以我想我将不得不更新我的代码并使用不同的保存功能(例如saveRDS())。
感谢您的帮助!
【问题讨论】:
-
你能解释一下你为什么要这样做吗?看起来 saveRDS 可能更适合你想要的......
-
@Dason:没有主要原因,就像我编写代码的方式一样:我有时需要将给定变量保存在工作区中已经存在的名称下(例如,保存一个 tmp 变量并将其设为“看起来”就像它是非 tmp 的一样)。它在过去出现了几次,每次我都试图解决这个问题,但都没有成功。所以这次我决定请教专家... :)