, 2013 9:39 AM
Subject: Re: [R] Faster way of summing values up based on expand.grid
HI,
You could also try this:
set.seed(25)
values1<-rnorm(10)
values2<-rnorm(10)
values3<-rnorm(10)
mycombos<-expand.grid(1:10,1:10,1:10,1:10)
mycombos1<- mycombos
mycombos<-mycombos[!(myco
(mycombos2,function(x) values2[x])))
system.time(sumNew3<-rowSums(sapply(mycombos2,function(x) values3[x])))
cbind(sumNew1,sumNew2,sumNew3)
A.K.
- Original Message -
From: Dimitri Liakhovitski
To: r-help
Cc:
Sent: Monday, March 25, 2013 5:00 PM
Subject: [R] Faster way of summing values up
Thank you so much, Jorge.
I checked and your method is at least 200 times faster than mine!
Exactly what I was looking for.
Dimitri
On Mon, Mar 25, 2013 at 5:49 PM, Jorge I Velez wrote:
> Hi Dimitri,
>
> If I understood correctly, the following will do:
>
> system.time(sum1 <- apply(mycombos, 1,
Hi Dimitri,
If I understood correctly, the following will do:
system.time(sum1 <- apply(mycombos, 1, function(x) sum(values1[x])))
system.time(sum2 <- apply(mycombos, 1, function(x) sum(values2[x])))
system.time(sum3 <- apply(mycombos, 1, function(x) sum(values3[x])))
cbind(sum1, sum2, sum3)
HTH
This is another method I can think of, but it's also slow:
for(i in 1:nrow(mycombos)){ # i=1
indexes=rep(0,10)
myitems<-unlist(mycombos[i,1:4])
indexes[myitems]<-1
mycombos$sum1[i]<-sum(values1 * indexes)
mycombos$sum2[i]<-sum(values2 * indexes)
mycombos$sum3[i]<-sum(values3 * indexes
Hello!
# I have 3 vectors of values:
values1<-rnorm(10)
values2<-rnorm(10)
values3<-rnorm(10)
# In real life, all 3 vectors have a length of 25
# I create all possible combinations of 4 based on 10 elements:
mycombos<-expand.grid(1:10,1:10,1:10,1:10)
dim(mycombos)
# Removing rows that contain pai
6 matches
Mail list logo