# [R] Requesting for help on the problem of "subscript out of bounds"

Jim Lemon drj|m|emon @end|ng |rom gm@||@com
Sat Oct 6 11:15:56 CEST 2018

What I would do next is to insert a line to see where it goes wrong:

for (i in 1:N){
cat("i =",i,"\n")
r[i]<-approx_entropy(ts[i,], edim = 2, r = 0.2*sd(ts[i,]), elag = 1)
}

The last i that is printed (which may be the first) will reveal what
caused the error I hope.

Jim

On Sat, Oct 6, 2018 at 7:12 PM Subhamitra Patra
<subhamitra.patra using gmail.com> wrote:
>
> Hello Sir,
>
> I tried by defining mat, but still facing the same problem.
>
> Hence, mat represents the time series. This time, I defined it as ts and tried, but still having the same problem.
>
> In particular, the problem is coming in the following line
> for (i in 1:N){
> +     r[i]<-approx_entropy(ts[i,], edim = 2, r = 0.2*sd(ts[i,]), elag = 1)
>
> where i is unable to synchronize with the no. of rows i.e. rows and thus I am getting the error of
>
> Error in `[<-`(`*tmp*`, i, , value = ts[i:(N - m + i)]) :
>   subscript out of bounds
>
> For your reference, I am providing my full code with an explanation as follows.
>
> The function
>
> approx_entropy(ts, edim = 2, r = 0.2*sd(ts), elag = 1)
>
> from the package,pracma I am calculating the approximate entropy of time series.ts
>
> I have a matrix of time series (one series per row i.e. 51 rows and 1 column)  and I would estimate the approximate entropy for each of the rows, storing the results in a vector. So, I have written a code
>
> library(pracma)
>
> N<-nrow(ts)
> r<-matrix(0, nrow = N, ncol = 1)
> for (i in 1:N){
>      r[i]<-approx_entropy(ts[i,], edim = 2, r = 0.2*sd(ts[i,]), elag = 1)
> }
>
>  After calculating for 1 series, I need to calculate the same things for the multiple series by changing the dimension of the ncol.
>
>
>
> On Sat, Oct 6, 2018 at 2:22 PM Jim Lemon <drjimlemon using gmail.com> wrote:
>>
>> Hi Subhamitra,
>> Where I think the error arises is in the line:
>>
>>  N<-nrow(mat)
>>
>> Since we don't know what "mat" is, we don't know what nrow(mat) will
>> return. If "mat" is not a matrix or data frame, it is likely to be
>> NULL. Try this:
>>
>> print(N)
>>
>> after defining it and see what it is.
>>
>> Jim
>>
>> On Sat, Oct 6, 2018 at 5:51 PM Subhamitra Patra
>> <subhamitra.patra using gmail.com> wrote:
>> >
>> > Hello friends,
>> >
>> > I am very new in this R world. But, still doing some programming by
>> > learning. While running one code, I found the problem of "subscript out of
>> > bounds". Please suggest me how to overcome this problem? For your
>> >
>> > The function
>> >
>> > approx_entropy(ts, edim =2, r = 0.2*sd(ts), elag = 1)
>> >
>> > library(pracma)
>> >
>> > N<-nrow(mat)
>> > r<-matrix(0, nrow = N, ncol = 1)for (i in 1:N){
>> >      r[i]<-approx_entropy(mat[i,], edim = 2, r = 0.2*sd(mat[i,]), elag = 1)}
>> >
>> > After running this code, I am getting the error of
>> >
>> > *"subscript out of bounds"*
>> >
>> >
>> >
>> >
>> >
>> > --
>> > *Best Regards,*
>> > *Subhamitra Patra*
>> > *Phd. Research Scholar*
>> > *Department of Humanities and Social Sciences*
>> > *Indian Institute of Technology, Kharagpur*
>> > *INDIA*
>> >
>> >         [[alternative HTML version deleted]]
>> >
>> > ______________________________________________
>> > R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> > https://stat.ethz.ch/mailman/listinfo/r-help
>> > and provide commented, minimal, self-contained, reproducible code.
>
>
>
> --
> Best Regards,
> Subhamitra Patra
> Phd. Research Scholar
> Department of Humanities and Social Sciences
> Indian Institute of Technology, Kharagpur
> INDIA