1

对不起,这很长,但我是新手,想具体一点。

我在一组目录、一组目录中有不同数量的数据框。(那是 60 个内部目录,因此我正在尝试自动执行此操作。)我的目标是列出并打开每个外部目录;在其中列出并打开每个内部目录;并在其中使用那里的数据帧执行一些简单的功能(平均一些值等)。

该脚本返回“setwd(inner) 中的错误:无法更改工作目录”,并改为对外部目录中的文件执行该功能,仅针对第一个外部目录。我认为脚本以错误的顺序调用函数,可能是因为我嵌套了 for 循环,使得 setwd(inner) 和 setwd('..') 都在 setwd(outer) 和 setwd('..') 内,为了访问每个目录中的每个目录。这不是递归或路径名问题,因为在我的目录列表(使用 list.dirs)中,无论递归和 full.names 是 TRUE 还是 FALSE,都会产生相同的错误。

我已经了解了使用 setwd 的缺点,但我是唯一的分析师,不需要与其他人/机器/操作系统共享脚本(我在 Mac OS 10.7.5 中使用 RStudio)。有没有比setwd更好的函数来分析每个目录下的所有文件?或者我是否需要使用更简单的脚本仅在内部目录中工作,并手动将其单独应用于这 60 个目录?感谢您阅读并提前感谢您提供的任何建议!

4

1 回答 1

1

我将使用 base r 附带的函数 list.files 函数。list.files 将递归搜索文件夹中的文件。您还可以包含一个模式,以便该函数仅返回匹配的文件。

list.files 将返回您正在查找的文件的相对路径,因此您无需更改工作目录即可读取每个数据帧。

我希望你会发现这很有用。

如果您需要任何其他帮助,请告诉我。

干杯

于 2015-02-24T04:30:32.427 回答