Hello,
First, don't use "data" for a data frame, as it is a R function.
Here is a way to do what you are looking for:
a=c(1,1,1,1,1,1,2,2,2,2,2,2)
b=c(1,1,1,2,3,4,1,1,2,2,3,4)
c=c(400,200,300,100,500,300,200,100,500,400,200,100)
dat=data.frame(a=a,b=b,c=c)
dat.sum <- aggregate(c ~ a+b, dat, sum)
dat.sum <- reshape(dat.sum, timevar='b', idvar='a', direction='wide')
colnames(dat.sum) <- c('a','b.1','b.2','b.3','b.4')
HTH,
Pascal
Le 04/02/2013 18:29, Benjamin Gillespie a ?crit :
Hi guys,
I hope you can help me with this (probably) simple query:
I have a data frame:
--------------------------
a=c(1,1,1,1,1,1,2,2,2,2,2,2)
b=c(1,1,1,2,3,4,1,1,2,2,3,4)
c=c(400,200,300,100,500,300,200,100,500,400,200,100)
data=data.frame(a=a,b=b,c=c)
--------------------------
And I would like to get the following output:
--------------------------
b
a 1 2 3 4
1 900 100 500 300
2 300 900 200 100
--------------------------
The values in the output represent the sum of values "c" in data frame "data", for each "a" and "b" combination.
For example, where "a" = 1 and "b" = 1, the output is 400+200+300 = 900.
Please would anyone be able to provide a script to create my desired output?
Many thanks in advance,
Ben Gillespie
Research Postgraduate
School of Geography
University of Leeds
Leeds
LS2 9JT