# Re: [R] Data length mismatch.

From: Gabor Grothendieck <ggrothendieck_at_gmail.com>
Date: Sat, 26 Jul 2008 18:06:02 -0400

Here is a second solution. This one uses sqldf instead of zoo:

library(zoo)
sqldf("select A.x - ifnull(B.x, 0) from A left join B using(DayOfYear)")

On Sat, Jul 26, 2008 at 5:26 PM, <rkevinburton_at_charter.net> wrote:
> I have two vectos (list) that represent a years of data. Each "row" is represented by the day of year and the quantity that was sold for that day. I would like to form a new vector that is the difference between the two years of data. A sample of A (and similarly B) looks like:
>
>> A[1:5,]
> DayOfYear x
> 1 1 1429
> 2 2 3952
> 3 3 3049
> 4 4 2844
> 5 5 2219
>>
>
> D <- A - B
>
> This works just fine if A and B are both the same length. How is the best way to handle the situation where A and B are of different lengths? If the day of year exists in both vectors (lists) then I just want the coorespondng "row" in D to be the difference btween A and B values. If the "row" doesn't exist in either A or B then the difference should be treated as if the missing "row" was zero. Is this feasible?
>
> Thank you.
>
> Kevin
>
> ______________________________________________
> R-help_at_r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help