Como evitar funções poluindo o namespace global?
Meu projeto R está ficando cada vez mais complexo, e estou começando a procurar por alguma construção que seja equivalente a classes em Java / C #, ou módulos em python, para que meu namespace global não fique cheio de funções que nunca são usadas fora de um arquivo .r particular.
Então, eu acho que a minha pergunta é: até que ponto é possível limitar o escopo de funções dentro de um arquivo .r específico ou similar?
Eu acho que posso fazer todo o arquivo .r em uma função gigante, e colocar funções dentro disso, mas isso atrapalha o eco:
myfile.r:
myfile <- function() {
somefunction <- function(a,b,c){}
anotherfunction <- function(a,b,c){}
# do some stuff here...
123
456
# ...
}
myfile()
Saída:
> source("myfile.r",echo=T)
> myfile <- function() {
+ somefunction <- function(a,b,c){}
+ anotherfunction <- function(a,b,c){}
+
+ # do some stuff here...
+ # . .... [TRUNCATED]
> myfile()
>
Você pode ver que "123" não é impresso, embora tenhamos usadoecho=T
nosource
comando.
Eu estou querendo saber se existe alguma outra construção que é mais padrão, já que colocar tudo dentro de uma única função não soa como algo que é realmente padrão? Mas talvez seja? Além disso, se isso significa queecho=T
funciona, então isso é um bônus definitivo para mim.