On 11-09-06 10:24 AM, Geof Givens wrote:
I have a function called within .First(), as in
.First=function() {
...blah...
BIG(partofblah) #BIG is my function, n=partofblah when called
...foo...
}
The partofblah component of blah is a number obtained from readline(),
which is then an argument to BIG()
BIG=function(n=10,removeask=T) {
z<- sapply(ls(pos=1), function(x)object.size(get(x)))
...stuff... }
When .First() executes upon startup and readline() determines
partofblah, the call to BIG() creates an error as follows:
Hello. How many huge items to consider deleting? (Enter=none)
3
Error in FUN(c("a", "a1", "a2", "aa", "aaa", "abline", "ad", "adj11", :
could not find function "object.size"
The "Hello" line is a prompt from .First(). "3" is my input. The error
occurs when BIG() is executed because object.size() is called
immediately upon entry to BIG().
After this error, execution of .First() from the command line works fine.
I can't figure out what is going wrong. Any ideas?
See the help page ?.First: It is run before the standard packages are
attached. You need to say where to find that function if you want to
use it, i.e. use utils::object.size.
Duncan Murdoch
>
Thanks,
Geof
BELOW HERE ARE THE COMPLETE FUNCTIONS:
.First=function() {
cat("Hello. How many huge items to consider deleting? (Enter=none)\n")
g=eval(parse(text=readline()))
if (is.numeric(g)) { BIG(n=g)}
cat("\nOk. What .Rdata file and directory do you want to use?\n\n")
cat("0 = Default (C:/Users/geof/My Documents)\n")
cat("1 = ~geof/teach/stat540/2011/R\n")
cat("c = choose by browsing\n")
thechosen=readline()
if (thechosen=="1") {
load("c:\\users\\geof\\csu\\teach\\stat540\\2011\\R\\.RData",.GlobalEnv)
setwd("c:\\users\\geof\\csu\\teach\\stat540\\2011\\R") }
if (thechosen=="c") {
cat("Hello. Choose .RData file to work with...\n")
where=file.choose()
rwhere=sub("\\.RData","",where)
load(where,.GlobalEnv)
setwd(rwhere) }
cat("\n")
cat(paste("Okay, I've got you working/saving in ",
getwd()[1],"\n",sep="")) }
BIG=function(n=10,removeask=T) {
z<- sapply(ls(pos=1), function(x)object.size(get(x)))
zlab=names(z)
z=as.matrix(rev(sort(z)))
zlab=as.matrix(rev(sort(zlab)))
myzmat=data.frame(id=1:n,name=zlab[1:n],size=z[1:n])
row.names(myzmat)=NULL
print(myzmat)
cat("\nGive c() vector of id's to delete, or return to exit\n")
thechosen=readline()
if (thechosen=="") {
invisible(return()) } else {
byebye=eval(parse(text=thechosen))
goodbye=as.character(myzmat$name)[byebye]
goodtogo=T
if(removeask) {
cat("Are you sure to delete (y/n):\n")
print(goodbye)
a=readline()
if(a!="y") goodtogo=F }
if(goodtogo) {
rm(list=goodbye,pos=1) } } }
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.