如何提取spdep包中localG对象的相关变量?
如何从spdep的localG_perm()结果中提取指定变量
localG_perm()返回的是localG类数值对象,本质是附加了统计属性的向量,而非数据框,因此不能用常规数据框的索引方式提取变量。要获取你需要的"Gi"、"E.Gi"等指标,需通过访问对象属性实现,具体方法如下:
直接提取单个指标
针对你列出的每个变量,对应提取方式如下:
- Gi:直接调用对象本身
r_auto(或用as.vector(r_auto)转为纯向量) - E.Gi(期望值):
attributes(r_auto)$expected - Var.Gi(方差):
attributes(r_auto)$var - StdDev.Gi(标准差):通过方差计算
sqrt(attributes(r_auto)$var) - Pr(z != E(Gi)):
attributes(r_auto)$p - Pr(z != E(Gi)) Sim:
attributes(r_auto)$sim - Pr(folded) Sim:
attributes(r_auto)$folded - Skewness:
attributes(r_auto)$skewness - Kurtosis:
attributes(r_auto)$kurtosis
整理为数据框(更便于后续处理)
如果需要把所有指标整合到一个数据框中,可运行以下代码:
localG_df <- data.frame( Gi = r_auto, E.Gi = attributes(r_auto)$expected, Var.Gi = attributes(r_auto)$var, StdDev.Gi = sqrt(attributes(r_auto)$var), `Pr(z != E(Gi))` = attributes(r_auto)$p, `Pr(z != E(Gi)) Sim` = attributes(r_auto)$sim, `Pr(folded) Sim` = attributes(r_auto)$folded, Skewness = attributes(r_auto)$skewness, Kurtosis = attributes(r_auto)$kurtosis )
说明
你之前尝试的 r_auto["Pr(z != E(Gi))"] 和 r_auto[, "Pr(z != E(Gi))"] 失效,是因为localG对象不是数据框结构,这些索引语法只适用于数据框、矩阵等二维结构,而带属性的向量需通过attributes()函数访问附加统计量。
内容的提问来源于stack exchange,提问作者Corbjn
相关产品推荐
相关产品推荐

