May I ask *why* you want to do this? It sounds to me like like you're using SAS-like strategies for your data analysis rather than R-like.
-- Bert -- Bert On Sat, Nov 30, 2024 at 6:27 PM Sorkin, John <jsor...@som.umaryland.edu> wrote: > > Dear R help folks, > > First my apologizes for sending several related questions to the list server. > I am trying to learn how to manipulate data in R . . . and am having > difficulty getting my program to work. I greatly appreciate the help and > support list member give! > > I am trying to write a program that will run through a data frame organized > by ID and for the first line of each new group of data lines that has the > same ID create a new variable first that will be 1 for the first line of the > group and 0 for all other lines. > > e.g. if my original data is > olddata > ID date > 1 1 > 1 1 > 1 2 > 1 2 > 1 3 > 1 3 > 1 4 > 1 4 > 1 5 > 1 5 > 2 5 > 2 5 > 2 5 > 2 6 > 2 6 > 2 6 > 3 10 > 3 10 > > the new data will be > newdata > ID date first > 1 1 1 > 1 1 0 > 1 2 0 > 1 2 0 > 1 3 0 > 1 3 0 > 1 4 0 > 1 4 0 > 1 5 0 > 1 5 0 > 2 5 1 > 2 5 0 > 2 5 0 > 2 6 0 > 2 6 0 > 2 6 0 > 3 10 1 > 3 10 0 > > When I run the program below, I receive the following error: > Error in df[, "ID"] : incorrect number of dimensions > > My code: > # Create data.frame > ID <- c(rep(1,10),rep(2,6),rep(3,2)) > date <- c(rep(1,2),rep(2,2),rep(3,2),rep(4,2),rep(5,2), > rep(5,3),rep(6,3),rep(10,2)) > olddata <- data.frame(ID=ID,date=date) > class(olddata) > cat("This is the original data frame","\n") > print(olddata) > > # This function is supposed to identify the first row > # within each level of ID and, for the first row, set > # the variable first to 1, and for all rows other than > # the first row set first to 0. > mydoit <- function(df){ > value <- ifelse (first(df[,"ID"]),1,0) > cat("value=",value,"\n") > df[,"first"] <- value > } > newdata <- aggregate(olddata,list(olddata[,"ID"]),mydoit) > > Thank you, > John > > > John David Sorkin M.D., Ph.D. > Professor of Medicine, University of Maryland School of Medicine; > Associate Director for Biostatistics and Informatics, Baltimore VA Medical > Center Geriatrics Research, Education, and Clinical Center; > PI Biostatistics and Informatics Core, University of Maryland School of > Medicine Claude D. Pepper Older Americans Independence Center; > Senior Statistician University of Maryland Center for Vascular Research; > > Division of Gerontology and Paliative Care, > 10 North Greene Street > GRECC (BT/18/GR) > Baltimore, MD 21201-1524 > Cell phone 443-418-5382 > > > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide https://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide https://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.