按照它们在R中的源文件中出现的顺序读取和列出对象

时间:2015-06-18 16:17:12

标签: r sorting object ls

我有一个文件,其中包含指向URL的路径列表以及类似于以下摘录的文件:

urls_queries_files.R

url_some_dta <- "url_goes_here"
backup_some_dta <- "path to the backup rds file goes here"
url_exotic_dta <- "another_url"
backup_exotic_dta <- "some backup rds file"
url_mysterious_dta <- "url goes here"
backup_mysterious_dta <- "backup rds file for myst. dta"

我正在通过source命令读取这些文件:

source(file = "urls_queries_files.R", local = TRUE)

当我列出对象时,对象按字母顺序显示:

> ls()
[1] "backup_exotic_dta"  "backup_mysterious_dta" "backup_some_dta" "url_exotic_dta"       
[5] "url_mysterious_dta"    "url_some_dta" 

这是有问题的,因为我有兴趣按照它们在原始文件(urls_queries_files.R)中列出的顺序读取这些对象。原因是我想草拟一个简短的脚本,在成功下载URL后会创建备份rds文件。我将起草一个简单的循环,使用第一个对象的值执行下载,如果成功保存rds文件(rds文件和URLs稍后用于填充数据帧)。所有这一切都相当简单,但如果我能够以原始文件中列出的方式引用对象,那将会更加简单。我可以简单地说:

all_objs <- ls()

并按以下方式进行操作:all_objs[i]all_objs[i+1]。排序设置为ls的{​​{1}}似乎也不会返回所需的结果:

FALSE

我的问题是:

  1. 如何按照源文件中键入的顺序列出R对象?
  2. 出于好奇:使用> ls(sorted = FALSE) [1] "url_mysterious_dta" "url_exotic_dta" [3] "backup_mysterious_dta" "backup_exotic_dta" [5] "url_some_dta" "backup_some_dta" 运行ls似乎返回的列表与源文件中输入的内容不对应。因此,我想知道 sorted = FALSE命令如何确定哪个对象首先出现在列表中

1 个答案:

答案 0 :(得分:1)

在没有明确记录文件本身的顺序之后,无法获取变量定义的顺序。一种方法是将变量放在list