首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >读入一个文件,然后写出R中具有相似名称的文件

读入一个文件,然后写出R中具有相似名称的文件
EN

Stack Overflow用户
提问于 2011-02-18 21:26:08
回答 2查看 962关注 0票数 2

在R中,我想从一个文件中读取数据,然后执行一系列操作,然后将数据写到另一个文件中。我能做到。但我希望这两个文件自动具有相似的名称。

例如,如果我创建了一个文件params1.R,我可以用以下命令读取它

代码语言:javascript
代码运行次数:0
运行
复制
source("c:\\personal\\consults\\ElwinWu\\params1.R")

然后做很多事情

然后写出一个带有write.table和类似于上面的文件名的结果表,除了用output1代替params1。

但我将对许多不同的params文件执行此操作,并且我可以预见会犯一些粗心的错误,即没有更改输出文件以匹配params文件。有没有办法让这一切自动化呢?

也就是说,将输出的数字设置为与params的数字匹配?

谢谢

彼得

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-19 00:04:48

如果这个想法只是为了确保所有的输出都与输入放在同一个目录中,那么尝试这样做:

代码语言:javascript
代码运行次数:0
运行
复制
source(file <- "c:\\personal\\consults\\ElwinWu\\params1.R")

old.dir <- setwd(dirname(file))

write.table(...whatever..., file = "output1.dat")
write.table(...whatever..., file = "output2.dat")

setwd(old.dir)

如果不需要保留初始目录,可以省略最后一行。

票数 1
EN

Stack Overflow用户

发布于 2011-02-18 21:32:58

如果您的源文件总是包含您想要更改为“输出”的"params“,那么您可以使用gsub很容易地做到这一点。

代码语言:javascript
代码运行次数:0
运行
复制
source(file <- "c:\\personal\\consults\\ElwinWu\\params1.R")

### some stuff

write.table(youroutput, gsub("params","output",file) )
# Will write in "c:\\personal\\consults\\ElwinWu\\output1.R"

编辑:

或者获取文件类型为.txt:

代码语言:javascript
代码运行次数:0
运行
复制
write.table(youroutput, gsub(".R",".txt",gsub("params","output",file)))
# Will output in c:\\personal\\consults\\ElwinWu\\output1.txt"

Edit2:

20个param文件的循环是:

代码语言:javascript
代码运行次数:0
运行
复制
n <- 20 # number of files

for (i in 1:n)
{
    source(file <- paste("c:\\personal\\consults\\ElwinWu\\params",i,".R",sep=""))

    ### some stuff

    write(youroutput, gsub(".R",".txt",gsub("params","output",file)))
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5041827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档