Casting lists to data.frames, analog to SAS
On Jan 14, 2009, at 3:56 PM, Matthew Pettis wrote:
<Resubmitting: Told I had a problem with a character set -- now
submitting in plain text>
I have a specific question and a general question.
Specific Question: I want to do an analysis on a data frame by 2 or
more class variables (i.e., use 2 or more columns in a dataframe to do
statistical classing). Coming from SAS, I'm used to being able to
take a data set and have the output of the analysis in a dataset for
further manipulation. I have a data set with vote totals, with one
column being the office name being voted on, and the other being the
party of the candidate. My votes are in the column "vc.n". I did the
analysis I want with:
work <- by(sd62[,"vc.n"], sd62[,c("office.nm","party.abbr")], sum)
the str() output of work looks like:
str(work)
'by' int [1:9, 1:11] NA 30 NA NA 0 0 0 NA 33 25678 ...
- attr(*, "dimnames")=List of 2
..$ office.nm : chr [1:9] "ATTORNEY GENERAL" "GOVERNOR & LT
GOVERNOR" "SECRETARY OF STATE" "STATE AUDITOR" ...
..$ party.abbr: chr [1:11] "CP" "DFL" "DFL2" "GP" ...
- attr(*, "call")= language by.default(data = sd62[, "vc.n"], INDICES
= sd62[, c("office.nm", "party.abbr")], FUN = sum)
When I use as.data.frame.table on a similarly constructed object I get: > as.data.frame.table(with(warpbreaks, by(breaks, list(wool, tension), sum))) Var1 Var2 Freq 1 A L 401 2 B L 254 3 A M 216 4 B M 259 5 A H 221 6 B H 169
David Winsemius > > > > > work is now a list. I'd really like to have work be a data frame with > 3 columns: The rows of the first two columns show the office and party > levels being considered, and the third being the sum of the votes for > that level combination. How do I cast this list/output into a data > frame? using 'as.data.frame' doesn't work. > > General Question: I assume the answer to the specific question is > dependent on my understanding list objects and accessing their > attributes. Can anyone point me to a good, throrough treatment of > these R topics? Specifically how to read and interpret the output of > the str(), and attributes() function, how to extract the values of the > 'by' output object into a data frame, etc.? > > Thanks, > Matt > > ______________________________________________ > 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.