[R-sig-Geo] No neighbours in sample using spatcounts package in R

Nick van Doormaal nick.vandoormaal at gmail.com
Fri Oct 21 15:03:05 CEST 2016


Thanks again for all your time Chris!
I did email the maintainer, Vinzenz Erhardt, a couple of days ago but no
reply from him. I scraped his email from some webpage because the
email-address mentioned in the spatcounts-package is not working.

All the best and good luck fleeing the non-country!

On 21 October 2016 at 14:06, chris english <englishchristophera at gmail.com>
wrote:

> Nick,
>
> Perhaps a pitch it to the maintainer and report back here? I was just
> fooling around and it was the
> structure of n.temp that was driving my approach, but each input finds its
> way in thru the formula. Still
> haven't had time to run this thru debugonce() as i am trying to flee a
> non-country, god help me, with dogs.
> And, where I know this actually does't help much, I'll try to look at it
> later. Have to get off the turkish keyboard and
> back to my own machine/
>
> Chris
>
>
>
> On Fri, Oct 21, 2016 at 1:46 AM, Nick van Doormaal <
> nick.vandoormaal at gmail.com> wrote:
>
>> Hi Chris,
>>
>> Thank you very much for your time and effort to help me out. Much
>> appreciated!
>> When I checked the structure of the example dataset, it seems that all
>> the variables are numerical. That's why I thought that replacing all the
>> NAs with 0s would be an okay way.
>>
>> library(spatcounts)
>> data(sim.nmat)
>> str(sim.nmat)
>> 'data.frame':   100 obs. of  6 variables:
>>  $ V1: num  1 2 3 4 5 6 7 8 9 10 ...
>>  $ V2: num  11 12 13 14 15 16 17 18 19 20 ...
>>  $ V3: num  2 1 2 3 4 5 6 7 8 9 ...
>>  $ V4: num  0 3 4 5 6 7 8 9 10 0 ...
>>  $ V5: num  0 0 0 0 0 0 0 0 0 0 ...
>>  $ V6: num  2 3 3 3 3 3 3 3 3 2 ...
>>
>> str(n.temp)
>> 'data.frame':   63 obs. of  6 variables:
>>  $ V1: num  1 2 7 13 14 16 19 20 21 22 ...
>>  $ V2: num  1 1 1 1 1 1 1 1 1 1 ...
>>  $ V3: num  2 1 1 23 1 26 1 30 31 32 ...
>>  $ V4: num  1 1 1 1 13 1 1 19 22 21 ...
>>  $ V5: num  1 1 1 14 1 1 20 1 1 23 ...
>>  $ V6: num  1 1 0 2 1 1 1 2 2 3 ...
>>
>> I think it has something to do with the combination of nmat (ntemp) and
>> gmat (gtemp)...but I can't really figure out how or why.
>>
>> On 20 October 2016 at 12:20, chris english <englishchristophera at gmail.com
>> > wrote:
>>
>>> Nick,
>>>
>>> I get the same error running your code.
>>>
>>> set.seed(987654321)
>>>
>>> library(spatcounts)
>>> data("sim.Yin")
>>> data("sim.fm.X")
>>> data("sim.gmat")
>>> data("sim.nmat")
>>> data("sim.region")
>>> AllData <- cbind(sim.Yin, sim.region, sim.fm.X)
>>> colnames(AllData)[1:2] <- c("Yin", "Region")
>>>
>>> idx <- sample(1:nrow(AllData), 100, replace=TRUE)
>>> newdata.df <- AllData[idx,]
>>> newdata.df <- newdata.df[order(newdata.df$Region),]
>>> X <- as.data.frame(newdata.df[,3:4])
>>> region <- as.data.frame(newdata.df$Region)
>>> colnames(region) <- "V1"
>>> Yin <- as.data.frame(newdata.df$Yin)
>>>
>>> temp.idx <- sort(unique(newdata.df$Region))
>>> g.temp <- sim.gmat[temp.idx,temp.idx]
>>>
>>> TotalN <- rowSums(g.temp) ##CHECK IF THERE ARE ZEROS PRESENT
>>> > is.element(0, n.temp$V6)
>>> [1] TRUE # after a few run thru's of idx to is.element
>>>
>>> n.temp <- sim.nmat[temp.idx,]
>>> n.temp$V2 <- temp.idx[match(n.temp$V2, temp.idx)]
>>> n.temp$V3 <- temp.idx[match(n.temp$V3, temp.idx)]
>>> n.temp$V4 <- temp.idx[match(n.temp$V4, temp.idx)]
>>> n.temp$V5 <- temp.idx[match(n.temp$V5, temp.idx)]
>>> n.temp$V6 <- TotalN
>>>
>>> > class(n.temp$V1)
>>> [1] "numeric"
>>> > class(n.temp$V2)
>>> [1] "integer"
>>> > class(n.temp$V3)
>>> [1] "integer"
>>> > class(n.temp$V4)
>>> [1] "integer"
>>> > class(n.temp$V5)
>>> [1] "integer"
>>> > class(n.temp$V6)
>>> [1] "numeric"
>>>
>>> # here, essentially checking what NA might be replaced with by class
>>> # and wondering if a small numeric is desirable (0.001), $V1 & $v6
>>> # and your 0 for integers ($V2-V5)
>>>
>>> Well, a bunch of different tries and the error persists.
>>>
>>> > n.temp[is.na(n.temp)] <- 1
>>> > n.temp$V6[7] <- 10
>>> > n.temp$V6[24] <- 10
>>> > n.temp$V6[28] <- 0.001
>>> >
>>> > n.temp$V6[28] <- 10
>>>
>>> > which(n.temp$V6 == 0)
>>> integer(0)
>>>
>>>
>>> > Yin.NB <- est.sc(Yin, ~ X[,1] + X[,2] -1,
>>> + region, model="NB", g.temp, n.temp, totalit=10) ##ERROR
>>> Error: NA/NaN/Inf in foreign function call (arg 1)
>>>
>>> So, i guess i'd do a debugonce(est.sc) and find out which foreign
>>> function is disappointing or
>>> disappointed by the inputs, but the culprit does not appear to be TotalN.
>>>
>>> HTH,
>>>
>>> Chris
>>>
>>>
>>>
>>> On Wed, Oct 19, 2016 at 4:01 PM, Nick van Doormaal <
>>> nick.vandoormaal at gmail.com> wrote:
>>>
>>>> Dear list members,
>>>>
>>>> I'm trying to do a bootstrap of a spatial count model using the
>>>> *spatcounts-package* in R. However, resampling with replacement may
>>>> lead to
>>>> "islands", because sometimes no neighbors will be selected. I believe
>>>> this
>>>> is causing the error message: Error: NA/NaN/Inf in foreign function call
>>>> (arg 1). Can somebody confirm this if this indeed the case? If so, is
>>>> there
>>>> a way to get around it, so that I would still be able to carry out a
>>>> bootstrap?
>>>>
>>>> Please find below the code to recreate the problem using the example
>>>> dataset of the spatcounts package.
>>>>
>>>> Thank you for your time and I hope somebody can help me out a bit.
>>>>
>>>> ####START CODE#####
>>>> set.seed(987654321)
>>>>
>>>> library(spatcounts)
>>>>
>>>> AllData <- cbind(sim.Yin, sim.region, sim.fm.X)
>>>> colnames(AllData)[1:2] <- c("Yin", "Region")
>>>>
>>>> idx <- sample(1:nrow(AllData), 100, replace=TRUE)
>>>> newdata.df <- AllData[idx,]
>>>> newdata.df <- newdata.df[order(newdata.df$Region),]
>>>> X <- as.data.frame(newdata.df[,3:4])
>>>> region <- as.data.frame(newdata.df$Region)
>>>> colnames(region) <- "V1"
>>>> Yin <- as.data.frame(newdata.df$Yin)
>>>>
>>>> temp.idx <- sort(unique(newdata.df$Region))
>>>> g.temp <- sim.gmat[temp.idx,temp.idx]
>>>>
>>>> TotalN <- rowSums(g.temp) ##CHECK IF THERE ARE ZEROS PRESENT IN THIS
>>>> VECTOR.##OTHERWISE RUN AGAIN UNTIL AT LEAST ONE ZERO
>>>>
>>>> n.temp <- sim.nmat[temp.idx,]
>>>> n.temp$V2 <- temp.idx[match(n.temp$V2, temp.idx)]
>>>> n.temp$V3 <- temp.idx[match(n.temp$V3, temp.idx)]
>>>> n.temp$V4 <- temp.idx[match(n.temp$V4, temp.idx)]
>>>> n.temp$V5 <- temp.idx[match(n.temp$V5, temp.idx)]
>>>> n.temp$V6 <- TotalN
>>>>
>>>> n.temp[is.na(n.temp)] <- 0
>>>>
>>>> Yin.NB <- est.sc(Yin, ~ X[,1] + X[,2] -1,
>>>> region, model="NB", g.temp, n.temp, totalit=10) ##ERROR
>>>>
>>>>         [[alternative HTML version deleted]]
>>>>
>>>> _______________________________________________
>>>> R-sig-Geo mailing list
>>>> R-sig-Geo at r-project.org
>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>>>
>>>
>>>
>>
>

	[[alternative HTML version deleted]]



More information about the R-sig-Geo mailing list