ha. that was a stupid mistake. Thanks.

On Fri, Jul 30, 2010 at 11:46 AM, David Winsemius <dwinsem...@comcast.net>wrote:

>
> On Jul 30, 2010, at 2:41 PM, steven mosher wrote:
>
>  # build a sample data frame illustrating the problem
>> ids<-c(rep(1234,5),rep(5436,3),rep(7864,4))
>> years<-c(seq(1990,1994,by=1),seq(1991,1993,by=1),seq(1990,1993,by=1))
>> data<-seq(14,25,by=1)
>> data[6]<-NA
>> DF<-data.frame(Id=ids,Year=years,Data=data)
>> DF
>>    Id Year Data
>> 1  1234 1990   14
>> 2  1234 1991   15
>> 3  1234 1992   16
>> 4  1234 1993   17
>> 5  1234 1994   18
>> 6  5436 1991   NA
>> 7  5436 1992   20
>> 8  5436 1993   21
>> 9  7864 1990   22
>> 10 7864 1991   23
>> 11 7864 1992   24
>> 12 7864 1993   25
>>
>> # The result wanted is a sum of DF$Data, by DF$Id. collect the sum of
>> $Data
>> for each $Id
>> # the  result would take the form
>> #  Id, sum  for each Id
>> # Try using BY
>> result<-by(DF$Data,INDICES=Data$Id,FUN=sum,na.rm=T)
>>
>
> Try instead:
>
> result<-by(DF$Data,INDICES=DF$Id,FUN=sum,na.rm=T)
>
> --
> David.
>
>> Error in names(IND) <- deparse(substitute(INDICES))[1L] :
>>  'names' attribute [1] must be the same length as the vector [0]
>> idx<-as.list(Data$Id)
>>
>>
>> idx2<-list(1234,1234,1234,1234,1234,5436,5436,5436,7864,7864,7864,7864)
>> result<-by(DF$Data,INDICES=idx,FUN=sum,na.rm=T)
>> result
>> [1] 215
>> result<-by(DF$Data,INDICES=idx2,FUN=sum,na.rm=T)
>> Error in tapply(1L:12L, list(1234, 1234, 1234, 1234, 1234, 5436, 5436,  :
>>  arguments must have same length
>>
>>> idx
>>>
>> list()
>>
>>> idx[1]
>>>
>> [[1]]
>> NULL
>>
>>  idx2
>>>
>> [[1]]
>> [1] 1234
>>
>> [[2]]
>> [1] 1234
>>
>> [[3]]
>> [1] 1234
>>
>> [[4]]
>> [1] 1234
>>
>> [[5]]
>> [1] 1234
>>
>> [[6]]
>> [1] 5436
>>
>> [[7]]
>> [1] 5436
>>
>> [[8]]
>> [1] 5436
>>
>> [[9]]
>> [1] 7864
>>
>> [[10]]
>> [1] 7864
>>
>> [[11]]
>> [1] 7864
>>
>> [[12]]
>> [1] 7864
>>
>> aggregate(DF$Data, by=idx2,sum,na.rm=T)
>> Error in aggregate.data.frame(as.data.frame(x), ...) :
>>  arguments must have same length
>>
>> ################################
>>
>> The instruction that the INDICES must have the same length is confusing
>> me.
>> the number of indices will always be less than the number of rows because
>> the indices are repeated, we want to sum over multiple instances of the
>> indices
>> to collect the Sum by index. I'm confused.
>>
>>        [[alternative HTML version deleted]]
>>
>>
>> ______________________________________________
>> R-help@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.
>>
>
> David Winsemius, MD
> West Hartford, CT
>
>

        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

Reply via email to