[R] trouble with for loop
Peter Alspach
PAlspach at hortresearch.co.nz
Thu Nov 6 05:01:28 CET 2008
?try
> -----Original Message-----
> From: r-help-bounces at r-project.org
> [mailto:r-help-bounces at r-project.org] On Behalf Of Kyeongmi Cheon
> Sent: Thursday, 6 November 2008 4:56 p.m.
> To: R help mailing list
> Subject: [R] trouble with for loop
>
> Hello,
> I'm having two similar problems with for loop and I would
> appreciate any help or comment.
>
> I want to use "for loop" to calculate series of initial
> values for an optimization problem. But
>
> some initial values have my function quit due to problems
> like calculating the inverse of singular
>
> matrices. I don't want to make my program check determinants
> and skip it if it
>
> is very small. My program stopping for certain iterations is
> okay but my problem is that the whole
>
> for loop is ended from there and it does not move to the next
> iteration. So the rest of the initial values are
>
> never tried. Here is a simple example:
>
>
>
> mat.inv <- function(theta){
> mat1 <- matrix( theta, nr=2)
> inv <- solve(mat1)
> res <- theta[1]+inv[1,1]
> res
> }
>
> for (i in 1:7){
> theta4 <- i
> theta.vec <- c(1,2,2,theta4)
> theta.res <- mat.inv(theta.vec)
> write.table(theta.res, paste("result",i,".txt",sep="")) }
>
> It stops when i=4. I need to try other values. How would I
> get it to simply move on to the next
>
> iteration :i=5,6,7 without checking determinants?
>
>
>
> Another similar problem that I have is that I have thousands
> of txt files and want to use a for loop
>
> to read them into R. The file names are consecutive but some
> of them are missing: For
>
> example, they are "result1.txt", "result2.txt",
> "result3.txt", "result5.txt"... When I use for loop to read
> it, it gets an error at "result4.txt" so that
> "result5.txt"... are not read. I attached an example program
> here. Could anyone help me? I appreciate your time in advance.
> Kyeongmi
>
>
> #create dataset name
> for (i in 1:6){
> assign(paste("newname",i,sep=""), paste("result",i,".txt",sep="")) }
> ls()
>
> #read data if there are files with the name: "result1.txt",
> "result2.txt", "result3.txt",
>
> "result5.txt".
> for (i in 1:6){
> assign( paste("r",i,sep=""),
> read.table(get(paste("newname",i,sep="")), header=T) )
>
> }
>
> # It stops at "result3.txt" so that "result5.txt"... are not read.
>
> ______________________________________________
> R-help at 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.
>
The contents of this e-mail are privileged and/or confidential to the named
recipient and are not to be used by any other person and/or organisation.
If you have received this e-mail in error, please notify the sender and delete
all material pertaining to this e-mail.
More information about the R-help
mailing list