[R] Error produced by read.zoo: "bad entries"

David Winsemius dwinsemius at comcast.net
Fri Jul 23 19:41:33 CEST 2010


On Jul 23, 2010, at 1:39 PM, Dimitri Liakhovitski wrote:

> Very sorry - I mistunderstood and confused split with index.column -
> totally my fault.
> Ok, now I've run this line:
>
> z <- read.zoo(OrigData, index.column = 2, split = "Brand")
>
> And I am getting:
> Error in merge.zoo(` Plus` = c(NA, 98L, 95L, 97L, NA, 98L, 97L, 98L,  
> NA,  :
>  series cannot be merged with non-unique index entries in a series
> In addition: There were 11 warnings (use warnings() to see them)

I got the warnings but no error:

 > z <- read.zoo(OrigData, split = "Brand", index.column=2)
There were 11 warnings (use warnings() to see them)
 > z
        Plus agrow chool gress Grib inKid kid omis plet pro romil
  [1,]    NA    NA    NA    NA   NA    NA  NA   NA   NA  NA    NA
  [2,]    98    99    98    97   96    96 100   97   97  99    96
  [3,]    95   100    97    99   92    97 100   97   99 100    99
  [4,]    97    99    94    98   91    95  99   98   98  99    95
  [5,]    NA    NA    NA    NA   NA    NA  NA   NA   NA  NA    NA
  [6,]    98    99    98    97   93    96  99   97   98  99    96
  [7,]    97   100    98    98   95    96  99   98   98 100    97
  [8,]    98    99    94    99   96    96  99   98   98  99    97
  [9,]    NA    NA    NA    NA   NA    NA  NA   NA   NA  NA    NA
[10,]    98    99    98    98   95    96  99   98   98  99    97
[11,]    98    99    98    99   97    96  99   98   97  99    99
[12,]    97   100    96    99   95    95  99   99   97 100    96
[13,]    96   100    96    96   93     0 100   96   97 100    96
[14,]    98    99    98   100   94    96 100   98   97  99    99
[15,]    95   100    98    99   93    95  99   99   99  99    99
[16,]    97    99    96    99   94    95  98   98   90  99    95
[17,]    97   100    97    96   92     0 100   96   98 100    95
[18,]    96    99    98    98   96    97 100   98   99  98    98
[19,]    98   100    98    98   96    97  99   98   99  99    98
[20,]    98   100    97    96   95     0 100   96   98  99    96
[21,]    94   100    98    99   92    97  99   98   98  98    98
[22,]    98    99    98    97   96    96  99   97   98  99    97
[23,]    97   100    96    96   93     0 100   95   97 100    95
[24,]    97   100    98    97   93    96  99   97   98  97    95
[25,]    98   100    96    97   96    94 100   97   99  99    96
[26,]    98   100    98    96   95     0 100   96   98  99    95
[27,]    98   100    98    97   93    96  96   97   98  99    99
[28,]    99   100    98    98   92    96 100   98   99  99    97
[29,]    98   100    97    95   95     0 100   95   98  99    95
[30,]    99   100    98   100   98    98  99  100   99 100    99
[31,]    97    99    94    97   95    95  99   97   98  98    94
[32,]    98    99    98    96   95     3 100   96   97  99    96
[33,]    97    99    98    99   97    97  99   99   99  99    99
[34,]    96    99    95    96   94    94  98   96   96  98    93
[35,]    98    99    98    97   94    54 100   97   97  99    96
[36,]    95   100    97    99   95    95  99   99   98 100    99
[37,]    98    99    98    98   95    96  99   98   99  99    97
[38,]    98    99    98    97   96    94 100   97   97  98    96
[39,]    95   100    98   100   95    97 100   99   99 100    99
[40,]    97   100    95    98   93    96  99   98   98  99    96

Since you didn't say what was expected, I am not in a position to know  
if this is success.

>
> And under warnings() it says:
> 1: In zoo(rval4[[i]], ix[[i]]) :
>  some methods for “zoo” objects do not work if the index entries in
> ‘order.by’ are not unique
>
>
>
> On Fri, Jul 23, 2010 at 1:13 PM, David Winsemius <dwinsemius at comcast.net 
> > wrote:
>> But, but, but.... Did you read my message about the need to correctly
>> specify index columns?
>>
>>
>> The problem is that read.zoo is reading your first column as an  
>> index and
>> it's actually the second column that should be used for that purpose.
>> --
>> David.
>>
>> On Jul 23, 2010, at 1:01 PM, Dimitri Liakhovitski wrote:
>>
>>> Strange, I did attach. Attaching again. Maybe the file just  
>>> doesn't go
>>> through?
>>> I have:
>>>
>>> names(OrigData):
>>> [1] "Brand" "Month" "Value"
>>>
>>> I read ?read.zoo
>>> According to that index should be the column number.
>>> I thought it should be split = 1 in my case - because I am  
>>> splitting by
>>> Brand.
>>> But neither split = 1 nor split =2 work.
>>> And split ="Brand" does not work either. Why?
>>>
>>> D.
>>>
>>> On Fri, Jul 23, 2010 at 12:52 PM, David Winsemius
>>> <dwinsemius at comcast.net> wrote:
>>>>
>>>> ?read.zoo
>>>>
>>>> You didn't specify the index column correctly.
>>>> On Jul 23, 2010, at 12:36 PM, Dimitri Liakhovitski wrote:
>>>>
>>>>> Hello!
>>>>>
>>>>> I have a data set similar to the data set "monthly" in the example
>>>>> below:
>>>>>
>>>>>
>>>>>
>>>>> monthly<- 
>>>>> data 
>>>>> .frame 
>>>>> (month 
>>>>> = 
>>>>> c 
>>>>> (20090301,20090401,20090501,20100301,20100401,20090301,20090401,20090501,20100301,20100401 
>>>>> ),monthly 
>>>>> .value=c(100,200,300,101,201,10,20,30,11,21),market=c("Market
>>>>> A","Market A", "Market A","Market A", "Market A","Market B",  
>>>>> "Market
>>>>> B","Market B","Market B", "Market B"))
>>>>> monthly$month<-as.character(monthly$month)
>>>>> monthly$month<-as.Date(monthly$month,"%Y%m%d")
>>>>> (monthly)
>>>>> str(monthly)
>>>>>
>>>>>
>>>>> I am trying to use read.zoo - like in 3 lines below:
>>>>> library(zoo)
>>>>> z <- read.zoo(monthly, split = "market")
>>>>> (z)
>>>>>
>>>>> With the artificially produced data set above, it works just fine.
>>>>> However, with my data it gives me an error:
>>>>>
>>>>> OrigData<-read.csv("OrigData.csv")
>>>>> OrigData$Month<-as.character(OrigData$Month)
>>>>> OrigData$Month<-as.Date(OrigData$Month,"%m/%d/%y")
>>>>> str(OrigData)
>>>>>
>>>>> ### The result of str(OrigData) is:
>>>>> 'data.frame':   440 obs. of  3 variables:
>>>>> $ Brand       : Factor w/ 11 levels "aBrand","bBrand",..:
>>>>> Month       :Class 'Date'  num [1:440] 13514 13545 13573 13604,...
>>>>> Value: int  NA NA NA 100 100 100 100 100 100 99
>>>>
>>>> ?read.zoo
>>>>
>>>> You didn't specify the index column correctly. In this case it  
>>>> needs to
>>>> be =
>>>> 2.
>>>>
>>>>>
>>>>> Then I try:
>>>>> z <- read.zoo(OrigData, split = "Brand")
>>>>>
>>>>> And get the error:
>>>>> Error in read.zoo(OrigData, split = "Brand") :
>>>>>  index has 440 bad entries at data rows: 1 2 3 4 5 6 7 8 9 10 11  
>>>>> 12 13
>>>>>
>>>>> But the structure of my OrigData is exactly the same as of  
>>>>> monthly. OK
>>>>> - OrigData always has a few NAs in "Value" coming first - but  
>>>>> that's
>>>>> consistent for all brands.
>>>>> Any idea what might be wrong?
>>>>> Thanks  a lot!
>>>>>
>>>>> Just in case -attaching the actual file.
>>>>>
>>>> No. Not  attached.
>>>>
>>>> --
>>>>
>>>> David Winsemius, MD
>>>> West Hartford, CT
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Dimitri Liakhovitski
>>> Ninah Consulting
>>> www.ninah.com
>>> <OrigData.csv>
>>
>> David Winsemius, MD
>> West Hartford, CT
>>
>>
>
>
>
> -- 
> Dimitri Liakhovitski
> Ninah Consulting
> www.ninah.com

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list