You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言卡方检验分析日本新冠空间数据运行报错求助

日本新冠病例空间统计卡方检验代码报错排查

我目前正在对日本不同地区的新冠阳性病例空间数据开展统计检验。
代码中Introduction标注的前置流程(含依赖包加载、数据读取、清洗、空间邻接关系构建、观测/期望值计算等)均可正常运行,但Problem area标注的卡方检验相关代码运行时持续抛出错误,暂未定位到错误诱因。若能协助提供解决方案,在此先行致谢。

运行环境

  • 硬件:2018款MacBook Pro
  • 系统:macOS Monterey
  • 运行平台:RStudio Cloud

Introduction(前置可运行代码段)

library(spdep)
library(sf)
library(spatstat)
library(tidyverse)
library(ggplot2)
library(DCluster)
library(splancs)
needs::prioritize(magrittr)

covid19j <- readr::read_csv("https://raw.githubusercontent.com/kaz-ogiwara/covid19/master/data/prefectures.csv")
covid19j_20200613 <- dplyr::filter(covid19j,
                                   year==2020,
                                   month==6,
                                   date==13)
covid19j_20200613$CODE <- 1:47
covid19j_20200613[is.na(covid19j_20200613)] <- 0
covid19j_20200613$serious <- as.numeric(covid19j_20200613$serious)
pop19 <- readr::read_csv("/cloud/project/covid19_data/covid19_data/pop2019.csv", locale=locale(encoding="UTF8"))
covid19j_20200613 <- dplyr::inner_join(covid19j_20200613, pop19, 
                                       by = c("CODE" = "CODE"))

jpn_pref <- sf::st_read("/cloud/project/covid19_data/covid19_data/jpn_pref.shp")
jpn_pref_cov19 <- dplyr::inner_join(jpn_pref, covid19j_20200613, by=c("PREF_CODE"="CODE" ))

covid19j_20200613$deaths <- as.numeric(covid19j_20200613$deaths)
covid19j_20200613$POP2019 <- as.numeric(covid19j_20200613$POP2019)
covid19j_20200613$deaths_rate <- covid19j_20200613$deaths / covid19j_20200613$POP2019 * 100
covid19j_20200613$testPos_rate <- covid19j_20200613$testedPositive / covid19j_20200613$peopleTested

jpn_pref <- sf::st_read('/cloud/project/covid19_data/covid19_data/jpn_pref.shp')
jpn_pref_cov19 <- dplyr::inner_join(jpn_pref, covid19j_20200613, 
                                    by=c("PREF_CODE"="CODE"))

pref_pnt <- sf::st_read('/cloud/project/covid19_data/covid19_data/pref_gov.shp')
pref_coord <-  data.frame(sf::st_coordinates(st_centroid(pref_pnt)))
pref.tri.nb <- sf::st_coordinates(st_centroid(pref_pnt)) %>%
  spdep::tri2nb()

covid19_OE <- data.frame(Observed=covid19j_20200613$deaths)
covid19_OE <- cbind(covid19_OE,
                     Expected=pop19$POP2019*sum(covid19j_20200613$deaths)/sum(pop19$POP2019),
                     x=pref_coord$X, y=pref_coord$Y
                     )

Problem area(报错代码段)

# 第一段测试代码
achisq.stat(covid19_OE, lambda=1)
# 报错输出:
# Error in if (sum(data$Observed) == sum(data$Expected)) { : 
#   missing value where TRUE/FALSE needed

# 第二段测试代码
achisq.test(Observed~offset(log(Expected)), covid19_OE, model="poisson", R=100)
# 报错输出:
# Error in `$<-.data.frame`(`*tmp*`, "Observed", value = numeric(0)) : 
#   replacement has 0 rows, data has 47

# 第三段测试代码
covid19_achb_pb <- boot(covid19_OE, statistic=achisq.pboot, 
                        sim="parametric", ran.gen=poisson.sim, R=100)
# 报错输出:
# Error in h(simpleError(msg, call)) : 

内容的提问来源于stack exchange,提问作者farinelli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 10:45:29