无法在 R 中使用 get() 保存表
Posted
技术标签:
【中文标题】无法在 R 中使用 get() 保存表【英文标题】:Cannot save tables with get() in R 【发布时间】:2019-09-13 09:26:05 【问题描述】:我扫描SQL数据库并通过ODBC加载evey表然后想将它存储在一个文件名与表名相同的文件中。我由paste(path,variablename,Sys.Date(),sep="_")
撰写文件名。我还喜欢通过将表的值存储在与相应 SQL 表同名的变量中来区分 R 中的数据。我通过将数据加载到一个临时变量然后将其内容分配给一个变量来实现这一点,该变量的名称存储在 variablename 中,带有assign(variablename,temporarytable)
函数。
我想用 save() 函数保存一个 R 变量,但需要引用存储在 variablename 变量中的名称。使用get(variablename)
时,我得到了它的内容。使用save(get(variablename),file=paste(...,variablename,...))
时出现错误,找不到对象“get(variablename)”。
save() 中的 get() 有什么问题?在这种情况下如何获取保存的变量内容?
ps
我使用for
循环扫描SQL 数据库表。 variablename 变量存储特定迭代中的 SQL 表名。 assign(variablename,temporarytable)
帮助将数据加载到所需名称的对象中。
【问题讨论】:
【参考方案1】:可以这样解决:
save(list = variablename, file = paste(...,variablename,...))
但我仍然很想知道为什么save(get(variablename), ...)
不起作用。
【讨论】:
【参考方案2】:也许,您可以将数据保存到对象中。
temp <- get(variablename)
save(temp,file=file.path(...,variablename,...))
【讨论】:
不好。保存的对象记住它的名字。在此方法中,稍后加载对象时,我将获得“temp”作为其名称。但我希望对象名称与其内容对应的 SQL 表名称相同。以上是关于无法在 R 中使用 get() 保存表的主要内容,如果未能解决你的问题,请参考以下文章