On Sep 4, 2010, at 6:10 AM, Evgenia wrote:


Hello, users.

Dear users,

*******I have a function f to simulate data from a model (example below used
only to show my problems)

f<-function(n,mean1){
a<-matrix(rnorm(n, mean1 , sd = 1),ncol=5)
b<-matrix(runif(n),ncol=5)
data<-rbind(a,b)
out<-data
out}

*********I want to simulate 1000 datasets (here only 5) so I use
S<-list()

for (i in 1:5){
S[[i]]<-f(n=10,mean1=0)}

******I have a very complicated function for estimation of a model which I
want to apply to Each one of the above simulated datasets

fun<-function(data){data<-as.matrix(data)
sink(' Example.txt',append=TRUE)
         cat("\n***********************\nEstimation
\n********************\nDataset Sim : ",
           i )
d<-data%*%t(data)
s<-solve(d)
print(s)
out<-list (s,d)
out
}
results<-list()
for(i in 1:5){
    tmp <- try(fun(data=S[[i]]))
    results[[i]] <- ifelse(is(tmp,"try-error"),NA,tmp)
}

####My problem is that results have only the 1st element of the result lists
of fun (i.e. only ####although tmp gives me both s and d.

Two problems:
One: is the misguided use of unmatched sink calls resulting in an accumulation of diversions of the R output. If your run that at the console you need to type sink() five times to get any response back from the console.

Two: the misguided use of ifelse when you should be using if () {}else{} to test a single condition and execute conditional assignment. ifelse if for working with vectors, not with lists.

Suggestions:
use the append = TRUE parameter to sink and unsink at the end of that function

I'm not sure about how you are using the test for error but since you did not construct any errors I cannot really be too sure. If it is "working " for you then use this instead:

if (is(tmp,"try-error") ){results[[i]] <- NA} else{results[[i]] <- tmp}

--
David.



Thanks

Evgenia


--
View this message in context: 
http://r.789695.n4.nabble.com/Function-try-and-Results-of-a-program-tp2526621p2526621.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
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.

David Winsemius, MD
West Hartford, CT

______________________________________________
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.

Reply via email to