【问题标题】:Correlation matrix produces 1s in diagonal and NA for the rest相关矩阵在对角线上产生 1,其余为 NA
【发布时间】:2021-03-28 03:44:16
【问题描述】:

我有一个包含 7 列数字数据的数据框 (Compiled_data)。我想使用 cor() 函数找到不同数据列之间的相关性。该代码返回一个相关矩阵,其对角线为 1,而相关矩阵中的其余位置为 NA。

Column_headers <- c("Country", "Country_code", "Year", "Death.rate", 
                             "Fertility.rate", "Greenhouse.gas", "Mobile.subs",
                             "Permanent_cropland","Population.density", 
                             "Birth.rate")

我想探索“Death.rate”到“Birth.rate”列中的数据之间的交互作用

Death.rate <- c(19.262,19.321,19.120,18.652)
Fertility.rate <- c(6.942,6.928,6.904,6.869)
Greenhouse.gas <- c(107540.6,109807.3,111165.3,110459.4)
Mobile.subs <- c(NA,4,0,0,0)
Permanent.cropland <- c(1.982024,1.982024,1.982024,1.982024)
Population.density <- c(503.4312,511.8361,519.6092,528.0958)
Birth.rate <- c(46.879,46.511,46.117,45.704)

我还想在计算中排除 NA 和 0。任何帮助都会很棒!

【问题讨论】:

标签: r


【解决方案1】:

就像 Ronak 提到的那样,您可能在数据中有空值,这会干扰相关性的计算。您将需要为相关函数中的“使用”参数使用一些东西,即“pairwise.complete.obs”来仅比较两者都有数据的观察结果。如果您还想删除 0,则可能需要在运行相关函数之前将它们强制为 NA。

【讨论】:

    【解决方案2】:

    感谢大家的反馈。以下代码适用于此:

    cordata <- Compiled_dataset[,c(4:10)]
    corr <- cor(cordata, use = "pairwise", method = "spearman")
    

    【讨论】:

      猜你喜欢
      • 2020-02-07
      • 1970-01-01
      • 2019-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-09
      • 1970-01-01
      相关资源
      最近更新 更多