Erik, Your example was just what I needed to generate the data -- many, many thanks! The names() function was something I had not grasped fully. I now have this and it works very nicely:
var_list <- c("HEQUAL", "EWEALTH", "ERADEQ", "HREVDIS1", "EDISCRIM", "HREVDIS2") mdf <- data.frame(replicate(length(var_list), sample(7,100, replace = TRUE))) ## generate random data names(mdf) ## default names names(mdf) <- var_list ## use our names mdf I'm still trying to figure out how to recode (using the car package) data into new variables using a similar loop. Basically, I'm not sure how to call the variable name and append it to the dataframe name in a loop. In Stata I'd do this using single quotes, but clearly that's not how R works. I tried several variations on this: reverse_me_varnames <- c("HEQUAL", "HREVDIS1", "HREVDIS2") reversed_varnames <- c("RHEQUAL", "RHREVDIS1", "RHREVDIS2") for(i in 1:length(reverse_me_varnames)) {mdf$reversed_varnames[i] <- recode(mdf$reverse_me_varnames[i], '5:7=NA; 1=4; 2=3; 3=2; 4=1;', as.factor.result=FALSE) While I don't get an error message, the data don't change. Any advice on reverse coding non-continguous variables? On Mon, May 19, 2008 at 4:12 PM, Donald Braman <[EMAIL PROTECTED]> wrote: > Many thanks -- > > You are right; I had rnorm() and sample() mixed up in my code. I'll work on > generating a normal ordinal sample next. > > Cheers, Don > > > On Mon, May 19, 2008 at 4:07 PM, Erik Iverson <[EMAIL PROTECTED]> > wrote: > >> Hello - >> >> Donald Braman wrote: >> >>> # I'm new to R and am trying to get the hang of how it handles >>> # dataframes & loops. If anyone can help me with some simple tasks, >>> # I'd be much obliged. >>> >>> # First, i'd like to generate some random data in a dataframe >>> # to efficiently illustrate what I'm up to. >>> # let's say I have six variables as listed below (I really >>> # have hundreds, but a few will illustrate the point). >>> # I want to generate my dataframe (mdf) >>> # with the 6 variables X 100 values with rnorm(7). >>> # How do I do this? I tried many variations on the following: >>> >>> var_list <- c("HEQUAL", "EWEALTH", "ERADEQ", "HREVDIS1", "EDISCRIM", >>> "HREVDIS2") >>> for(i in 1:length(var_list)) {var_list[1] <- rnorm(100)} >>> mdf <- data.frame(cbind(varlist[1:length(var_list)]) >>> mdf >>> >>> There are many ways to do this. Do you mean that you want 6 columns, 100 >> observations in each column, each a sample from a normal distribution with >> mean = 7 and sd = 1? You can do this without looping in one of several >> ways. If you are coming from a SAS environment (my guess since you talk of >> looping over data.frames), you may be used to looping through a data object. >> In R, you can usually avoid this since many functions are vectorized, or >> take a 'whole object' approach. >> >> var_list <- c("HEQUAL", "EWEALTH", "ERADEQ", "HREVDIS1", "EDISCRIM", >> "HREVDIS2") >> >> mdf <- data.frame(replicate(6, rnorm(100, 7))) ## generate random data >> names(mdf) ## default names >> names(mdf) <- var_list ## use our names >> >> >>> # Then, I'd like to recode the variables that begin with the letter "H". >>> # I've tried many variations of the following, but to no avail: >>> >>> reverse_list <- c("HEQUAL", "HREVDIS1", "HREVDIS2") >>> reversed_list <- c("RHEQUAL", "RHREVDIS1", "RHREVDIS2") >>> for(i in 1:length(reverse_list)) >>> {mdf[ ,e_reversed_list][[i]] <- recode(mdf[ ,e_reverse_list][[i]], >>> '5:99=NA; 1=4; 2=3; 3=2; 4=1; ', as.factor.result=FALSE) >>> >>> >> I'm not quite sure what you are after here. What do you mean by recode? >> What package is your 'recode' function located in? >> >> It appears that you may be under the impression that the data.frame >> contains integers, but certainly it will not since it was generated with >> rnorm? sample can generate a samples of the type you may be after, for >> example, >> >> > sample(7, 100, replace = TRUE) >> >> Best, >> Erik Iverson >> > > > > -- > Donald Braman > http://www.law.gwu.edu/Faculty/profile.aspx?id=10123 > http://research.yale.edu/culturalcognition > http://ssrn.com/author=286206 > -- Donald Braman http://www.law.gwu.edu/Faculty/profile.aspx?id=10123 http://research.yale.edu/culturalcognition http://ssrn.com/author=286206 [[alternative HTML version deleted]] ______________________________________________ R-help@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.