[R] Converting matrix to data frame without losing an assigned dimname
David L Carlson
dcarlson at tamu.edu
Wed Apr 10 17:27:10 CEST 2013
Other options (possibly counting as ugly):
# Preserving States as rownames for labeling
> data.frame(State=rownames(tableData), tableData,
stringsAsFactors=FALSE)
State Frost Population Area
Connecticut Connecticut 139 3100 4862
Pennsylvania Pennsylvania 126 11860 44966
Maryland Maryland 101 4122 9891
Virginia Virginia 85 4981 39780
# Default rownames
> data.frame(State=rownames(tableData), tableData,
row.names=NULL, stringsAsFactors=FALSE)
State Frost Population Area
1 Connecticut 139 3100 4862
2 Pennsylvania 126 11860 44966
3 Maryland 101 4122 9891
4 Virginia 85 4981 39780
>
----------------------------------------------
David L Carlson
Associate Professor of Anthropology
Texas A&M University
College Station, TX 77843-4352
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of arun
> Sent: Tuesday, April 09, 2013 6:01 PM
> To: Paul Miller
> Cc: R help
> Subject: Re: [R] Converting matrix to data frame without losing an
> assigned dimname
>
> Hi,
>
> library(plyr)
> library(reshape2)
> df2<-mutate(dcast(melt(tableData),State~Var2),
> State=factor(State,levels=rownames(tableData)))
> dfNew<-df2[as.numeric(df2$State),c(1,3:4,2)]
> dfNew$State<- as.character(dfNew$State)
> dfNew
> # State Frost Population Area
> #1 Connecticut 139 3100 4862
> #3 Pennsylvania 126 11860 44966
> #2 Maryland 101 4122 9891
> #4 Virginia 85 4981 39780
> A.K.
>
>
>
>
> ----- Original Message -----
> From: Paul Miller <pjmiller_57 at yahoo.com>
> To: r-help at r-project.org
> Cc:
> Sent: Tuesday, April 9, 2013 4:52 PM
> Subject: [R] Converting matrix to data frame without losing an assigned
> dimname
>
> Hello All,
>
> Would like to be able to convert a matrix to a dataframe without losing
> an assigned dimname.
>
> Here is an example that should illustrate what I'm talking about.
>
> tableData <- state.x77[c(7, 38, 20, 46), c(7, 1, 8)]
> names(dimnames(tableData)) <- c("State", "")
> tableData
>
> State Frost Population Area
> Connecticut 139 3100 4862
> Pennsylvania 126 11860 44966
> Maryland 101 4122 9891
> Virginia 85 4981 39780
>
> tableData <- as.data.frame(tableData)
> tableData
>
> Frost Population Area
> Connecticut 139 3100 4862
> Pennsylvania 126 11860 44966
> Maryland 101 4122 9891
> Virginia 85 4981 39780
>
> Notice how "State" gets removed when converting to a dataframe. How can
> I get a dataframe with a separate column called "State" instead of
> having the state become the row.names? I can think of an ugly way to do
> it but suspect there must be something more elegant.
>
> Thanks,
>
> Paul
>
> ______________________________________________
> 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.
More information about the R-help
mailing list