gpt4 book ai didi

r - 从另一个 .r 文件中编辑 .r 文件

转载 作者:行者123 更新时间:2023-12-04 11:42:14 28 4
gpt4 key购买 nike

我正在尝试使我当前的项目可重现,因此我正在创建一个主文档(最终是一个 .rmd 文件),用于调用和执行其他几个文档。这样我自己和其他调查员只需要打开和运行一个文件。

当前设置分为三层:主文件、2 个读入文件、2 个数据库。主文件使用 source() 调用读入文件,读入文件解析 .csv 数据库并应用标签。

每次我下载更新的数据时,读入的文件和数据库都是使用我当前使用的数据管理软件 (REDCAP) 自动生成的。

但是,读入文件有一行代码可以删除我环境中的所有对象。我想直接从主文件编辑读入文件,这样我就不必在每次运行报告时单独打开读入文件。具体来说,由于所有读入文件都相同,我想删除每个文件中的第 2 行。

我试过在 Google 上搜索,并尝试过 file.edit(),但一直找不到任何东西。甚至不确定这是可能的,但我想我会问。让我知道我是否可以改进这个问题,或者您是否需要任何额外的代码来回答它。谢谢!

当前相关的主代码(为通用而编辑):

 source("read-in1")  
source("read-in2")

当前相关的读入文件代码(每个文件相同,数据库名称除外):
 #Clear existing data and graphics  
rm(list=ls())
graphics.off()
#Load Hmisc library
library(Hmisc)
#Read Data
data=read.csv('database.csv')
#Setting Labels

[读入代码被截断]

额外细节:
操作系统:Windows 7 Professional x86
R 版本:3.1.3
R Studio 版本:0.99.441

最佳答案

你可以试试 readLines()以及类似以下内容(根据@Hong Ooi 的建议大大简化了以下内容):

eval(parse(readLines("read-in1.R")[-2]))

我原来的解决方案更迂腐:
f <- file("read-in1.R", open="r")
t <- readLines(f)
close(f)

for (l in t[-2]) { eval(parse(text=l)) }
for()循环只是解析和评估文本文件中的每一行,除了第二行(这就是 -2 索引值的作用)。如果您正在读取和写入更长的文件,那么以下选项将比第二个选项快得多,但仍然不如 @Hong Ooi 的可取:
f <- file("read-in1.R", open="r")
t <- readLines(f)
close(f)

f <- file("out.R", open="w")
o <- writeLines(t[-2], f)
close(f)
source("out.R")

关于r - 从另一个 .r 文件中编辑 .r 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30879841/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com