[R] subtotals based on price bands?
arun
smartpink111 at yahoo.com
Wed Oct 17 23:42:29 CEST 2012
HI,
Try this:
seq1 = seq(0, 100, by = 5)
seq2 = seq(100, 1000, by = 100)
Bands = c(seq1, seq2)
DF1 <- data.frame(matrix(ncol=2,nrow=200))
colnames(DF1)<- c("Price", "Size")
set.seed(1)
DF1$Price <- sample(1:1000, 200, replace=F)
set.seed(300)
DF1$Size <- sample(1:1000, 200, replace=F)
DF1$Price1<-cut(DF1$Price,breaks=unique(Bands))
res<-aggregate(DF1$Size,by=list(DF1$Price1),sum)
#or
res2<-data.frame(sum=tapply(DF1$Size,DF1$Price1,sum))
#or
library(plyr)
res3<-ddply(DF1,.(Price1),summarize, sum=sum(Size))
A.K.
----- Original Message -----
From: jcrosbie <james at crosb.ie>
To: r-help at r-project.org
Cc:
Sent: Wednesday, October 17, 2012 3:37 PM
Subject: Re: [R] subtotals based on price bands?
Thank you, but I believe that's not returning what I want.
This maybe a better dat aset to work with.
seq1 = seq(0, 100, by = 5)
seq2 = seq(100, 1000, by = 100)
Bands = c(seq1, seq2)
DF1 <- data.frame(matrix(ncol = 2, 200))
colnames(DF1)<- c("Price", "Size")
DF1$Price <_ sample(1:1000, 200, replace=F)
DF1$Size <_ sample(1:1000, 200, replace=F)
I'm looking to find the subtotal of size when their price falls within a band.
The bands go 0 to 5, 5 to 10,....100 to 200,..., 900 to 1000.
Therefore if we had:
Price Size
210
220
1120
1120
The total in this case would be
0 to 5 30
10 to 2040
Thank you
________________________________
From: arun kirshna [via R] <ml-node+s789695n4646484h81 at n4.nabble.com>
To: jcrosbie <james at crosb.ie>
Sent: Wednesday, October 17, 2012 10:32 AM
Subject: Re: subtotals based on price bands?
Hi,
May be this helps:
seq1 = seq(0, 100, by = 5)
seq2 = seq(100, 1000, by = 100)
Bands = c(seq1, seq2)
set.seed(1)
Prices = sample(1:1000, 200, replace=F)
set.seed(1)
size = sample(1:1000, 200, replace=F)
Prices1<-cut(Prices,breaks=unique(Bands))
tapply(size,Prices1,sum)
# (0,5] (5,10] (10,15] (15,20] (20,25] (25,30]
# NA NA 26 NA 23 NA
#(30,35] (35,40] (40,45] (45,50] (50,55] (55,60]
# 31 NA NA NA 54 NA
#(60,65] (65,70] (70,75] (75,80] (80,85] (85,90]
# 126 67 NA 79 82 179
#(90,95] (95,100] (100,200] (200,300] (300,400] (400,500]
# 186 NA 2627 5342 8927 9961
#(500,600] (600,700] (700,800] (800,900] (900,1e+03]
# 10932 14913 18677 12833 16022
table(Prices1)
#Prices1
# (0,5] (5,10] (10,15] (15,20] (20,25] (25,30]
# 0 0 2 0 1 0
#(30,35] (35,40] (40,45] (45,50] (50,55] (55,60]
# 1 0 0 0 1 0
#(60,65] (65,70] (70,75] (75,80] (80,85] (85,90]
# 2 1 0 1 1 2
#(90,95] (95,100] (100,200] (200,300] (300,400] (400,500]
# 2 0 17 22 25 22
#(500,600] (600,700] (700,800] (800,900] (900,1e+03]
# 20 23 25 15 17
A.K.
________________________________
If you reply to this email, your message will be added to the discussion below:
http://r.789695.n4.nabble.com/subtotals-based-on-price-bands-tp4646473p4646484.html
This email was sent by arun kirshna (via Nabble)
To receive all replies by email, subscribe to this discussion
--
View this message in context: http://r.789695.n4.nabble.com/subtotals-based-on-price-bands-tp4646473p4646505.html
Sent from the R help mailing list archive at Nabble.com.
[[alternative HTML version deleted]]
______________________________________________
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