Hi Kathryn,
another solution would be to use tapply function. So the code to
create new1 vector would be:
a <- 1:8
fc <- c('g1','g1','g2','g3','g3','g3','g4','g4') # definitions of
groups to sum over
tapply(a,fc,sum)
ivan
On Fri, Jan 23, 2015 at 10:32 AM, Bert Gunter wrote:
> If Jim's answer i
Here is some examples using functions 'tapply()' as suggested by Bert
Gunter in the previous post, 'aggregate()', and 'xtabs()'. Note that
'grp.id' means 'group indicator'.
> a <- c(1,2,3,4,5,6,7,8)
> new1 <- c(1+2, 3, 4+5+6, 7+8)
> new1
[1] 3 3 15 15
>
> grp.id <- c(1,1, 2, 3,3,3, 4,4)
> ta
If Jim's answer is not what you want, then I would say it is because
your question is too vague to be answered. In particular, how do you
specify the elements of the vector that are to be summed to create the
new vectors? ?tapply might then be relevant here, but that's just a
guess.
-- Bert
B
Hi Kathryn,
I think this might do the trick:
make_group_sums<-function(x,maxgroups) {
lenx<-length(x)
runlengths<-sample(1:lenx,1)
for(i in 2:(maxgroups-1)) {
lenx<-lenx-runlengths[i-1]
runlengths[i]<-ifelse(lenx,sample(1:lenx,1),0)
}
runlengths[maxgroups]<-length(x)-sum(runlengths)
grou
Dear R users,
I have a quick quesiton.
Here is a vector "a".
a<- c(1,2,3,4,5,6,7,8).
(In fact, I have a huge vector.)
With "a", I'd like to create new vectors, for example,
new1 = (1+2, 3, 4+5+6, 7+8)
new2 = (1, 2+3+4+5+6+7, 8)
new3 = (1+2+3+4+5+6+7, 8)
How could I make the above vectors u
5 matches
Mail list logo