[R] replacement has length zero. In addition: Warning message: In max(i) : no non-missing arguments to max; returning -Inf

Sarah Goslee sarah.goslee at gmail.com
Fri Aug 3 22:56:41 CEST 2012


When i == 10, what is ind?
diveCond$r_apt[10]
regCond_all$APD[ind]

Providing a subset is unhelpful. I gave you explicit dput() code to
use; that's how we need data to be provided.

I've given you various suggestions; if you don't implement them then
there's not much point in me trying to help.

Sarah


On Fri, Aug 3, 2012 at 4:54 PM, Yolande Tra <yolande.tra at gmail.com> wrote:
> I have tried 1 and 2. Then for i=10, the error came back
>> i=1
>> thisStamp <- as.POSIXct(strptime(diveCond$timestamp[1], "%Y-%m-%d
>> %H:%M:%S"))
>> ind <- which.min( abs(index(regCond_all) - thisStamp ))
>> diveCond$r_wvht[1]<- regCond_all$WVHT[ind]
>> diveCond$r_dpd[1]<- regCond_all$DPD[ind]
>> diveCond$r_apt[1] <- regCond_all$APD[ind]
>> diveCond$r_mwd[1] <- regCond_all$MWD[ind]
>> diveCond$r_wtmp[1] <- regCond_all$WTMP[ind]
>> i=2
>> thisStamp <- as.POSIXct(strptime(diveCond$timestamp[2], "%Y-%m-%d
>> %H:%M:%S"))
>> ind <- which.min( abs(index(regCond_all) - thisStamp ))
>> diveCond$r_wvht[2]<- regCond_all$WVHT[ind]
>> diveCond$r_dpd[2]<- regCond_all$DPD[ind]
>> diveCond$r_apt[2] <- regCond_all$APD[ind]
>> diveCond$r_mwd[2] <- regCond_all$MWD[ind]
>> diveCond$r_wtmp[2] <- regCond_all$WTMP[ind]
>> i=10
>> thisStamp <- as.POSIXct(strptime(diveCond$timestamp[10], "%Y-%m-%d
>> %H:%M:%S"))
>> ind <- which.min( abs(index(regCond_all) - thisStamp ))
>> diveCond$r_wvht[10]<- regCond_all$WVHT[ind]
> Error in diveCond$r_wvht[10] <- regCond_all$WVHT[ind] :
>   replacement has length zero
> In addition: Warning message:
> In max(i) : no non-missing arguments to max; returning -Inf
>> diveCond$r_dpd[10]<- regCond_all$DPD[ind]
> Error in diveCond$r_dpd[10] <- regCond_all$DPD[ind] :
>   replacement has length zero
> In addition: Warning message:
> In max(i) : no non-missing arguments to max; returning -Inf
>> diveCond$r_apt[10] <- regCond_all$APD[ind]
> Error in diveCond$r_apt[10] <- regCond_all$APD[ind] :
>   replacement has length zero
> In addition: Warning message:
> In max(i) : no non-missing arguments to max; returning -Inf
>> diveCond$r_mwd[10] <- regCond_all$MWD[ind]
> Error in diveCond$r_mwd[10] <- regCond_all$MWD[ind] :
>   replacement has length zero
> In addition: Warning message:
> In max(i) : no non-missing arguments to max; returning -Inf
>
> Here is a subset of the data
>>u=regCond_all
>>u1<-data.frame(date=index(u),coredata(u))
>> subset(u1,WVHT<0.61)
>                     date WDIR WSPD GST WVHT   DPD  APD MWD PRES ATMP WTMP
> DEWP
> 408  2008-08-09 12:52:00  999   99  99 0.59 12.50 5.52 247 9999  999 12.8
> 999
> 409  2008-08-09 13:22:00  999   99  99 0.60 11.76 5.42 239 9999  999 12.8
> 999
> 950  2008-08-20 22:22:00  999   99  99 0.57 15.38 5.93 208 9999  999 15.9
> 999
> 2689 2009-10-11 05:33:00  999   99  99 0.59 11.11 6.29 256 9999  999 12.6
> 999
> 2691 2009-10-11 06:33:00  999   99  99 0.60 10.53 6.84 278 9999  999 12.7
> 999
> 2717 2009-10-11 19:33:00  999   99  99 0.60 10.53 5.28 273 9999  999 12.8
> 999
> 2724 2009-10-11 23:03:00  999   99  99 0.60 11.11 5.97 252 9999  999 13.2
> 999
> 2726 2009-10-12 00:03:00  999   99  99 0.60 10.53 6.08 252 9999  999 13.2
> 999
> 2727 2009-10-12 00:33:00  999   99  99 0.60  9.88 5.61 276 9999  999 13.2
> 999
> 2731 2009-10-12 02:33:00  999   99  99 0.57 18.18 6.57 249 9999  999 13.2
> 999
> 2732 2009-10-12 03:03:00  999   99  99 0.58  8.33 6.66 304 9999  999 13.2
> 999
> 2733 2009-10-12 03:33:00  999   99  99 0.59  7.14 6.80 288 9999  999 13.2
> 999
>      VIS TIDE
> 408   99   99
> 409   99   99
> 950   99   99
> 2689  99   99
> 2691  99   99
> 2717  99   99
> 2724  99   99
> 2726  99   99
> 2727  99   99
> 2731  99   99
> 2732  99   99
> 2733  99   99
>>
>
> Thanks,
> Y
>
> On Fri, Aug 3, 2012 at 4:35 PM, Sarah Goslee <sarah.goslee at gmail.com> wrote:
>>
>> Yolande,
>>
>> Please send your message to the R-help email list too, not just to me.
>>
>> On Fri, Aug 3, 2012 at 4:28 PM, Yolande Tra <yolande.tra at gmail.com> wrote:
>> > Here is the description
>> > I am trying to build the data diveCond from two datasets diveData_2008,
>> > diveData_2009 and RegCond_all.   How would I dput each data for anyone
>> > who
>> > helps why the code is giving error. The code selects index i of the data
>> >
>> > The code starts like this
>> > diveCond <- data.frame(matrix(0, nrow=97, ncol=17))
>> > names(diveCond) <- c("dive_id", "timestamp", "visability", "r_wvht",
>> > "r_dpd", "r_apt", "r_mwd", "r_wtmp", "l_salinity", "l_o2", "l_hs",
>> > "l_tp",
>> > "l_wdir", "l_along", "l_cross", "l_mab", "l_depth")
>> > dive_id <- 0
>> > for(i in unique(as.character(index(diveData_2008)))){
>> >  dive_id <- dive_id+1
>> >
>> >  diveCond$dive_id[dive_id] <- dive_id
>> >  diveCond$timestamp[dive_id] <- as.character(i)
>> >  diveCond$visability[dive_id] <- as.numeric(diveData_2008[i][1,12])
>> >
>> > }
>> > for(i in unique(as.character(index(diveData_2009)))){
>> >  dive_id <- dive_id+1
>> >
>> >  diveCond$dive_id[dive_id] <- dive_id
>> >  diveCond$timestamp[dive_id] <- as.character(i)
>> >  diveCond$visability[dive_id] <- as.numeric(diveData_2009[i][1,5])
>> >
>> > }
>>
>> Which has nothing whatsoever in common with the "reproducible" code
>> you provided originally, since that only creates diveCond full of
>> zeros and tries to use it, without success.
>>
>> You need to give us actual data for all data frames involved, as you
>> did for just the one, eg.
>> dput(head(diveCond, 10))
>> dput(head(regCond_all))
>>
>> otherwise we can't run your code and see what happens.
>>
>> But failing that, here's how to diagnose it yourself. Set i <- 1 and
>> then run the first few lines of your loop. Look at ind and see if it's
>> what you think it should be. Look at diveCond$r_wvht[i] and
>> regCond_all$WVHT[ind] to see if they exist and are the same size.
>>
>> I'm guessing that ind isn't what you expect, but there's no way I can
>> be certain from what you've given us.
>>
>> Sarah
>>
>>
>> >
>> > I id not get error so far. Then
>> >
>> >> for(i in 1:dim(diveCond)[1]){
>> > + thisStamp <- as.POSIXct(strptime(diveCond$timestamp[i], "%Y-%m-%d
>> > %H:%M:%S"))
>> > + ind <- which.min( abs(index(regCond_all) - thisStamp ))
>> > + diveCond$r_wvht[i]<- regCond_all$WVHT[ind]
>> > + diveCond$r_dpd[i]<- regCond_all$DPD[ind]
>> > + diveCond$r_apt[i] <- regCond_all$APD[ind]
>> > + diveCond$r_mwd[i] <- regCond_all$MWD[ind]
>> > + diveCond$r_wtmp[i] <- regCond_all$WTMP[ind]
>> > + }
>> > Error in diveCond$r_wvht[i] <- regCond_all$WVHT[ind] :
>> >   replacement has length zero
>> > In addition: Warning message:
>> > In max(i) : no non-missing arguments to max; returning -Inf
>> >
>> >
>> > Thank you for your time
>> > Y
>> > On Fri, Aug 3, 2012 at 4:02 PM, Sarah Goslee <sarah.goslee at gmail.com>
>> > wrote:
>> >>
>> >> Hi Yolande,
>> >>
>> >> What's index() ?
>> >>
>> >> I get
>> >> >  ind <- which.min( abs(index(regCond_all) - thisStamp ))
>> >> Error in which.min(abs(index(regCond_all) - thisStamp)) :
>> >>   could not find function "index"
>> >>
>> >> There's probably an easier way to do whatever you're trying to
>> >> accomplish, but I'm afraid I can't tell what that is from just your
>> >> code, especially without being able to figure out how ind is
>> >> calculated. Can you describe what you want to do and what the result
>> >> should look like when run with the first 10 rows of your data, as you
>> >> provided with dput()?
>> >>
>> >> Sarah
>> >>
>> >> On Fri, Aug 3, 2012 at 3:49 PM, Yolande Tra <yolande.tra at gmail.com>
>> >> wrote:
>> >> > Hi,
>> >> >
>> >> > Here is my data, the first 10 rows
>> >> >  > u=regCond_all[1:10,]
>> >> >> dput(u)
>> >> > structure(c(999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
>> >> > 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
>> >> > 99, 99, 99, 99, 1.9, 2, 1.97, 1.99, 1.83, 1.78, 1.6, 1.52, 1.52,
>> >> > 1.36, 10.53, 9.88, 9.88, 10.53, 10.53, 10.53, 5.26, 9.88, 10.53,
>> >> > 10.53, 5.4, 5.57, 5.46, 5.34, 5.5, 5.59, 5.62, 5.76, 6.23, 6.19,
>> >> > 295, 294, 292, 294, 283, 288, 305, 287, 294, 295, 9999, 9999,
>> >> > 9999, 9999, 9999, 9999, 9999, 9999, 9999, 9999, 999, 999, 999,
>> >> > 999, 999, 999, 999, 999, 999, 999, 12.7, 12.5, 12.3, 12.6, 12.6,
>> >> > 12.5, 12.5, 12.5, 12.7, 12.7, 999, 999, 999, 999, 999, 999, 999,
>> >> > 999, 999, 999, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
>> >> > 99, 99, 99, 99, 99, 99, 99, 99), class = c("xts", "zoo"), .indexCLASS
>> >> > =
>> >> > c("POSIXct",
>> >> > "POSIXt"), .indexTZ = "", tclass = c("POSIXct", "POSIXt"), tzone =
>> >> > "",
>> >> > index = structure(c(1217564520,
>> >> > 1217566320, 1217568120, 1217569980, 1217571720, 1217573520,
>> >> > 1217575320,
>> >> > 1217577120, 1217578920, 1217580720), tzone = "", tclass =
>> >> > c("POSIXct",
>> >> > "POSIXt")), .Dim = c(10L, 13L), .Dimnames = list(NULL, c("WDIR",
>> >> > "WSPD", "GST", "WVHT", "DPD", "APD", "MWD", "PRES", "ATMP", "WTMP",
>> >> > "DEWP", "VIS", "TIDE")))
>> >> >
>> >> > I tried to copy some fields from this data to another data. I got
>> >> > error.
>> >> > Could you please help? Thanks.
>> >> > diveCond <- data.frame(matrix(0, nrow=97, ncol=17))
>> >> > names(diveCond) <- c("dive_id", "timestamp", "visability", "r_wvht",
>> >> > "r_dpd", "r_apt", "r_mwd", "r_wtmp", "l_salinity", "l_o2", "l_hs",
>> >> > "l_tp",
>> >> > "l_wdir", "l_along", "l_cross", "l_mab", "l_depth")
>> >> > dive_id <- 0
>> >> >  for(i in 1:dim(diveCond)[1]){
>> >> >  thisStamp <- as.POSIXct(strptime(diveCond$timestamp[i], "%Y-%m-%d
>> >> > %H:%M:%S"))
>> >> >  ind <- which.min( abs(index(regCond_all) - thisStamp ))
>> >> >  diveCond$r_wvht[i] <- regCond_all$WVHT[ind]
>> >> >  diveCond$r_dpd[i] <- regCond_all$DPD[ind]
>> >> >  diveCond$r_apt[i]  <- regCond_all$APD[ind]
>> >> >  diveCond$r_mwd[i]  <- regCond_all$MWD[ind]
>> >> >  diveCond$r_wtmp[i]  <- regCond_all$WTMP[ind]
>> >> > }
>> >> >
>> >> > Error in diveCond$r_wvht[i] <- regCond_all$WVHT[ind] :
>> >> >   replacement has length zero
>> >> > In addition: Warning message:
>> >> > In max(i) : no non-missing arguments to max; returning -Inf
>> >> > If you could explain the error that would help prevent future errors.
>> >> >
>> >> > Thanks,
>> >> > Y
>>
>>
>> --
>> Sarah Goslee
>> http://www.functionaldiversity.org
>
>



-- 
Sarah Goslee
http://www.stringpage.com
http://www.sarahgoslee.com
http://www.functionaldiversity.org



More information about the R-help mailing list