help with for loop: new column giving count of observation for each SITEID
Care to tell us why you think you need such an index? I suspect you do not. Cheers, Bert On Tue, Oct 30, 2012 at 12:21 PM, Meredith, Christy S -FS
<csmeredith at fs.fed.us> wrote:
Not quite, I need it like this, a new number for each ordered year in the sequence within each site, regardless of what the years are, and to retain the RchID column. RchID site year index 1 A 2002 1 2 A 2004 2 3 A 2005 3 4 B 2003 1 5 B 2006 2 6 B 2008 3 7 C 2002 1 8 C 2003 2 9 C 2004 3 Thanks so much for you help! -----Original Message----- From: William Dunlap [mailto:wdunlap at tibco.com] Sent: Tuesday, October 30, 2012 1:07 PM To: Meredith, Christy S -FS; r-help at R-project.org Subject: RE: [R] help with for loop: new column giving count of observation for each SITEID Is this what you want?
> withinGroupIndex <- function(group, ...) ave(integer(length(group)), group, ..., FUN=seq_along)
> site <- c("A","A","C","D","C","A","B")
> data.frame(site, index=withinGroupIndex(site))
site index 1 A 1 2 A 2 3 C 1 4 D 1 5 C 2 6 A 3 7 B 1 You can add more arguments if the groups depend on more than one value:
> year <- rep(c(1985, 2012), c(4,3)) > data.frame(site, year, index=withinGroupIndex(site, year))
site year index 1 A 1985 1 2 A 1985 2 3 C 1985 1 4 D 1985 1 5 C 2012 1 6 A 2012 1 7 B 2012 1 Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com
-----Original Message-----
From: r-help-bounces at r-project.org
[mailto:r-help-bounces at r-project.org] On Behalf Of Meredith, Christy S
-FS
Sent: Tuesday, October 30, 2012 11:17 AM
To: r-help at R-project.org
Subject: [R] help with for loop: new column giving count of
observation for each SITEID
Hello,
I think this is easy, but I can't seem to find a good way to do this
in the R help. I have a list of sites, with multiple years of data for
each site id. I want to create a new column that gives a number
describing whether it is the 1st year ("1" ) the data was collected
for the site, the second year ("2"), etc. I have different years for
each siteid, but I don't care which year it was collected, just the order that it is in for that siteid. This is what I have so far, but it doesn't do the analysis separately for each SiteID.
indexi<-indexg[order(indexg$SiteID,indexg$Yr),]
obs=0
indexi=na.omit(indexi)
for(i in 1:length(indexi$SiteID)){
obs=obs+1
indexi$obs[i]=obs
}
Thanks for any help you can give.
Christy Meredith
USDA Forest Service
Rocky Mountain Research Station
PIBO Monitoring
Data Analyst
Voice: 435-755-3573
Fax: 435-755-3563
This electronic message contains information generated by the USDA
solely for the intended recipients. Any unauthorized interception of
this message or the use or disclosure of the information it contains
may violate the law and subject the violator to civil or criminal
penalties. If you believe you have received this message in error, please notify the sender and delete the email immediately.
[[alternative HTML version deleted]]
______________________________________________ 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.
Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm