【发布时间】:2016-11-28 01:20:07
【问题描述】:
我有几个大型 R 对象保存为 .RData 文件:“this.RData”、“that.RData”、“andTheOther.RData”等。我没有足够的内存,所以我想循环加载每个,提取一些行,然后卸载它。然而,一旦我加载(i),我需要剥离(i)的“.RData”部分,然后才能对对象“this”、“that”、“andTheOther”进行任何操作。我想做与How to iterate over file names in a R script? 中描述的相反的事情我该怎么做?谢谢
编辑:我没有提到文件不在工作目录中并且也有文件路径。我遇到了Getting filename without extension in R 并且 file_path_sans_ext 取出了扩展名,但路径的其余部分仍然存在。
【问题讨论】:
-
你可以使用
gsub -
您能详细说明一下吗? FWIW,新手在这里...
-
你想替换字符串的一部分。这就是 gsub 的用途。你可以做
gsub(".RData","",i)来替换你不想要的部分。查看?gsub了解更多示例。 -
我很困惑,从什么中剥离?请给我们看一些东西。加载 RData 后,原始命名对象保留 - 不是具有 .RData 扩展名的文件名。
-
@Parfait 如果使用循环加载保存的对象 A.Rdata、B.Rdata、C.Rdata,则环境中有对象 A、B 和 C。要使用这些对象,(i) 需要将 for 循环中的 (i) 修改为仅读取 A、B 或 C,删除“.Rdata”部分。就我而言,我也有不同的路径指向不同的项目目录,这些目录也需要被删除,下面用户 Ott 的回答显示了如何。