【问题标题】:Environment variables and variable name [duplicate]环境变量和变量名[重复]
【发布时间】:2014-05-15 20:20:38
【问题描述】:

所以我用

filenames <- list.files(path="my path", pattern="*.csv")

然后我使用assign()read.csv() 在“我的路径”中附加一个未知的.csv 列表。

filename <- c("myFileA","myFileB", "myFileC")

现在myFileAmyFileBmyFileC 在我加载它们后作为数据框存在。

如何使用filename,其中包含例如。 "myFileA" 拉出数据框 myFileA 或其他变量?

基本上,我想操作变量,但是由于文件名发生了变化,我确实有这个包含名称的变量:

for (i in filename){

#do something with the dataframe i, BUT
#as is, i is a string "myFileA"
#how to use "myFileA" to pull up dataframe myFileA?

}

【问题讨论】:

  • 您所描述的通常被认为是不好的做法,这正是您现在提出问题的原因。为了使用您的对象,它将您放入一些相当笨拙的代码中。最好把它们放在一个列表中。
  • 将其作为副本关闭不会对您产生任何影响。你得到了你的答案(以及一些其他有用的建议,由于某种原因你觉得冒犯了)。您的问题是如何使用对象名称的字符检索对象。直接答案是get,我很清楚,我只是在寻找副本时给你一些额外的建议,因为这是一个非常常见的问题。
  • @joran 确实如此。实际上是R-FAQ 7.21,那里的建议(对那些愿意接受它的人很有帮助!)是使用列表通常更容易;)
  • 这里的每个人都是正确的。我道歉。我很感谢大家的建议。在特定情况下,我要求一些特定的东西,需要改进。 get() 是我要找的。​​span>
  • 不用担心。我很高兴你得到了答案。

标签: r variables csv dataframe


【解决方案1】:

get 的文档说它会“按名称搜索对象”

for (i in filename){

#do something with the dataframe
df <- get(i)

}

【讨论】:

  • 您的回答完全符合我的要求,而不是无益的“做这个.. 做那个..”这比中午手电筒有用。谢谢!
  • @StudentOfScience 在什么意义上以重复的方式结束 not 导致您得到相同的答案?如果你没有抱怨,也许如果你点击了重复的链接,你就会滔滔不绝地谈论 joran 为你指明了正确的方向。
猜你喜欢
  • 2021-06-16
  • 2012-10-19
  • 1970-01-01
  • 2015-09-16
  • 2021-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-30
相关资源
最近更新 更多