[R] iteration introspection?
Gabor Grothendieck
ggrothendieck at myway.com
Sat Aug 7 17:44:46 CEST 2004
Cere Davis <cere <at> u.washington.edu> writes:
>
> Hi everyone,
>
> I want to perform a regex substitution on line #1 in a file based on the
> contents of line #2. same is true for line 11 and line 12 etc...
>
> With the look at each line of a file rolling forward method it seems to
> me that I will not be able to use iterators like 'each' for this
> operation unless I am able to manipulate or even know of the position of
> the file pointer from within the iterator block but I don't know of a
> way to do this.
>
> Does anyone know how I can learn what the value of my iterator is within
> a loop?
Assuming you want to process the lines in pairs read them all in
and then loop:
lines <- readLines("my.txt")
n <- seq(along = lines)
for( i in seq(1,n,2)) {
# process line[i] and line[i+1] ...
}
Or if you want to read them in a pair at a time:
con <- file("my.txt", "r")
while(length(line <- readLines(con, 1))) {
next.line <- readLines(con, 1)
stopifnot(length(next.line))
# process line and next.line
}
close(con)
If you want to read them in one by one rather than in pairs then
have a look at ?pushBack
More information about the R-help
mailing list