English 中文(简体)
将数据框的每个摘要行扩展为类型计算
原标题:Expand each summary row of a data frame into a type-count
  • 时间:2012-05-24 18:47:41
  •  标签:
  • r
  • dataframe

我有一个数据框架, 看起来像这个, 有两个关键列, 然后计算出三个不同类型的东西。

  Year Month Urban Suburban Rural
1    1     1    11       12    13
2    1     2    21       22    23

我想扩展每一行, 以便它将类型列成一个因数, 然后将数字排成一个因数, 类似 :

  Year Month     Type Number
1    1     1    Urban     11
2    1     1 Suburban     12
3    1     1    Rural     13
4    1     2    Urban     21
5    1     2 Suburban     22
6    1     2    Rural     23

是否有一个函数可以无痛地做这种事情?

最佳回答

这正是 reshape reshape2 包的设计目的:

require(reshape2)
x <- read.table(text = "Year Month Urban Suburban Rural
1    1     1    11       12    13
2    1     2    21       22    23")

#Specify the variables that are your ID variables. The others will form your "long" data
x.m <- melt(x, id.vars = c("Year", "Month"))
#-----  
Year Month variable value
1    1     1    Urban    11
2    1     2    Urban    21
3    1     1 Suburban    12
...

"中有一篇论文,这是一个很好的开始。

问题回答
dat <- read.table(text=" Year Month Urban Suburban Rural
 1    1     1    11       12    13
 2    1     2    21       22    23
 ", header=TRUE)

reshape(dat, direction="long", idvar=1:2, varying=names(dat)[3:5], times=names(dat)[3:5], v.names="Number", timevar="Type")
             Year Month     Type Number
1.1.Urban       1     1    Urban     11
1.2.Urban       1     2    Urban     21
1.1.Suburban    1     1 Suburban     12
1.2.Suburban    1     2 Suburban     22
1.1.Rural       1     1    Rural     13
1.2.Rural       1     2    Rural     23

(注意 reshape 函数在标准包件组中,而不是在重塑或重塑2 包件组中。 )





相关问题
How to plot fitted model over observed time series

This is a really really simple question to which I seem to be entirely unable to get a solution. I would like to do a scatter plot of an observed time series in R, and over this I want to plot the ...

REvolution for R

since the latest Ubuntu release (karmic koala), I noticed that the internal R package advertises on start-up the REvolution package. It seems to be a library collection for high-performance matrix ...

R - capturing elements of R output into text files

I am trying to run an analysis by invoking R through the command line as follows: R --no-save < SampleProgram.R > SampleProgram.opt For example, consider the simple R program below: mydata =...

R statistical package: wrapping GOFrame objects

I m trying to generate GOFrame objects to generate a gene ontology mapping in R for unsupported organisms (see http://www.bioconductor.org/packages/release/bioc/vignettes/GOstats/inst/doc/...

Changing the order of dodged bars in ggplot2 barplot

I have a dataframe df.all and I m plotting it in a bar plot with ggplot2 using the code below. I d like to make it so that the order of the dodged bars is flipped. That is, so that the bars labeled "...

Strange error when using sparse matrices and glmnet

I m getting a weird error when training a glmnet regression. invalid class "dgCMatrix" object: length(Dimnames[[2]]) must match Dim[2] It only happens occasionally, and perhaps only under larger ...

Generating non-duplicate combination pairs in R

Sorry for the non-descriptive title but I don t know whether there s a word for what I m trying to achieve. Let s assume that I have a list of names of different classes like c( 1 , 2 , 3 , 4 ) ...

Per panel smoothing in ggplot2

I m plotting a group of curves, using facet in ggplot2. I d like to have a smoother applied to plots where there are enough points to smooth, but not on plots with very few points. In particular I d ...

热门标签