An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20130118/8b733bbd/attachment.pl>
A smart way to use "$" in data frame
4 messages · Yuan, Rebecca, Duncan Murdoch, Greg Snow
On 18/01/2013 2:40 PM, Yuan, Rebecca wrote:
Hello all, I have a data frame dataa: newdate newstate newid newbalance newaccounts 1 31DEC2001 AR 1 1170 61 2 31DEC2001 VA 2 4565 54 3 31DEC2001 WA 3 2726 35 4 31DEC2001 AR 3 2700 35 The following gives me the balance of state AR: dataa$newbalance[data$newstate == 'AR'] 1170 2700 Now, I have another different data frame datab, it is very similar to data, except that the name of the columns are different, and the order of the columns are different: oldstate olddate oldbalance oldid oldaccounts 1 AR 31DEC2012 1234 7 40 2 WA 31DEC2012 2222 3 30 3 VA 31DEC2012 2345 5 23 3 AR 31DEC2012 5673 5 23 datab$oldbalance[datab$oldstate== 'AR' ] 1234 5673 Could I have a way to quote data$balance[data$state == 'AR'] in general, where balance=oldbalance, state=oldstate when data=dataa, and balance = newbalance, state = newstate when data=datab ?
Yes, you could use the name of the dataframe to get the column names, e.g. state <- c(dataa="oldstate", datab="newstate") balance <- c(dataa="oldbalance", datab="newbalance") dfname <- "dataa" df <- get(dfname) df[ df[,state[dfname]] == 'AR', balance[dfname]] but that is really, really unreadable code. You would be much better off to name the columns consistently in the first place. Duncan Murdoch
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20130118/a7c854db/attachment.pl>
3 days later
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20130122/9b4328db/attachment.pl>