[R] Have a function like the "_n_" in R ? (Automatic count function )
hadley wickham
h.wickham at gmail.com
Wed Feb 25 15:30:56 CET 2009
And for completeness here's a function that returns the next integer
on each call.
n <- (function(){
i <- 0
function() {
i <<- i + 1
i
}
})()
> n()
[1] 1
> n()
[1] 2
> n()
[1] 3
> n()
[1] 4
> n()
[1] 5
> n()
[1] 6
;)
Hadley
On Wed, Feb 25, 2009 at 8:27 AM, David Winsemius <dwinsemius at comcast.net> wrote:
> The _n_ construct in SAS is most analogous to that of row names in R,
> accessible (and modifiable) via the row.names() function:
>
> DF <- structure(list(Month = structure(c(2L, 2L, 2L, 2L, 1L, 1L, 1L,
> 1L, 3L, 3L, 3L, 3L, 3L), .Label = c("Aug", "July", "Sept"), class =
> "factor"),
> Week = 27:39, Estpassage = c(665L, 2232L, 9241L, 28464L,
> 41049L, 82216L, 230411L, 358541L, 747839L, 459682L, 609567L,
> 979475L, 837189L), MedFL = c(34L, 35L, 35L, 35L, 35L, 35L,
> 35L, 35L, 35L, 36L, 36L, 36L, 36L)), .Names = c("Month",
> "Week", "Estpassage", "MedFL"), class = "data.frame", row.names = c(NA,
> -13L))
>
> DF$counter <- row.names(DF)
>
>> DF
> Month Week Estpassage MedFL counter
> 1 July 27 665 34 1
> 2 July 28 2232 35 2
> 3 July 29 9241 35 3
> 4 July 30 28464 35 4
> 5 Aug 31 41049 35 5
> 6 Aug 32 82216 35 6
> 7 Aug 33 230411 35 7
> 8 Aug 34 358541 35 8
> 9 Sept 35 747839 35 9
> 10 Sept 36 459682 36 10
> 11 Sept 37 609567 36 11
> 12 Sept 38 979475 36 12
> 13 Sept 39 837189 36 13
>
> Row names, however, not guaranteed to be integer, although if not specified
> at time of creation a dataframe will have its row names set to an ascending
> series of integer type. Another function that would provide similar utility
> for vectors might be seq_along().\, but in the case of dataframes, it may
> confuse the beginning R user because it will return a column oriented
> ascending sequence.
>
>> seq_along(DF)
> [1] 1 2 3 4 5
>
> --
> David Winsemius
>
>
>
> On Feb 25, 2009, at 7:25 AM, Nash wrote:
>
>>
>> Have the counter function in R ?
>>
>> if we use the software SAS
>>
>> /*** SAS Code **************************/
>> data tmp(drop= i);
>> retain seed x 0;
>> do i = 1 to 5;
>> call ranuni(seed,x);
>> output;
>> end;
>> run;
>>
>> data new;
>> counter=_n_; ***** this keyword _n_ ****;
>> set tmp;
>> run;
>>
>> /*
>> _n_ (Automatic variables)
>> are created automatically by the DATA step or by DATA step statements.
>> */
>>
>> /*** Output ********************************
>> counter seed x
>> 1 584043288 0.27197
>> 2 935902963 0.43581
>> 3 301879523 0.14057
>> 4 753212598 0.35074
>> 5 1607264573 0.74844
>>
>> ********************************************/
>>
>> Have a function like the "_n_" in R ?
>>
>>
>> --
>> Nash - morrison at ibms.sinica.edu.tw
>>
>> ______________________________________________
>> 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.
>
> ______________________________________________
> 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.
>
--
http://had.co.nz/
More information about the R-help
mailing list