Обычно я запускаю много симуляций в R
. В промежутках между симуляциями некоторые части кода R изменялись. Как правило, я храню вместе с результатами моделирования файл .txt, содержащий определение каждой функции, использованной в этом моделировании. Чтобы сделать этот файл .txt, я просто запускаю эту строку:
for(j in 1:length(ls())) print(c(ls()[j],eval(as.symbol(ls()[j]))))
out<-capture.output(for(j in 1:length(ls())) print(c(ls()[j],eval(as.symbol(ls()[j])))))
cat(out,file=paste("essay[[1]]
[1] "foo1"
[[2]]
function (x)
{
sin(x) + 3
}
[[1]]
[1] "foo2"
[[2]]
function (x)
{
cos(x) + 1
}
[[1]]
[1] "foo3"
[[2]]
function (x)
{
cos(x) + sin(x)
}
code.txt",sep=""),sep="\n",append=FALSE)
сразу после загрузки всех функций в моем env. Однако в результирующем текстовом файле функции R не имеют формата, который R может интерпретировать как функции. Чтобы понять почему, вот простой пример:
rm(list=ls())
foo1<-function(x){
sin(x)+3
}
foo2<-function(x){
cos(x)+1
}
foo3<-function(x){
cos(x)+sin(x)
}
даст:
[[1]]
[1] "foo1"
[[2]]
function (x)
{
sin(x) + 3
}
[[1]]
[1] "foo2"
[[2]]
function (x)
{
cos(x) + 1
}
[[1]]
[1] "foo3"
[[2]]
function (x)
{
cos(x) + sin(x)
}
Итак, в двух словах, я хотел бы сделать esse
[[1]]
[1] "foo1"
[[2]]
function (x)
{
sin(x) + 3
}
[[1]]
[1] "foo2"
[[2]]
function (x)
{
cos(x) + 1
}
[[1]]
[1] "foo3"
[[2]]
function (x)
{
cos(x) + sin(x)
}
code.txt R-читаемым.