首页 > 解决方案 > R中不同维度数据框的相关性测试

问题描述

我在 R 中有两个数据框,每个数据框都包含从最高到最低的变量排名。这里有两个简单的例子:

卡利收入

County    Income   Rank
county a       46000     1
county b       29000     3
county c       33000     2

Cali_Asthma_Rates

County   Diagnoses  Rank
county a      0.100       4
county b      0.200       1
county c      0.150       3
county d      0.190       2
county e      0.080       5

我想看看两个县的排名之间是否有任何相关性,但是 Cali_Asthma_Rates 数据有更多变量,所以当我尝试以下操作时,我得到一个“不兼容的维度”错误:

cor(as.numeric(Cali_Asthma_Rates$Rank), as.numeric(Cali_Income$Rank), method="spearman")

有没有办法在不从 Cali_Asthma_Rates 中删除额外县的情况下找到等级之间的相关性?我基本上只是想找到任何一种统计方法来查看在 Cali_Income 中排名靠前的县是否也在 Cali_Asthma_Rates 中排名靠前。帮助将不胜感激!

标签: rcorrelationranking

解决方案


您应该首先合并两个数据框:

Cali_combined <- merge(Cali_Income, Cali_Asthma_Rates,
  by = `County Name`,
  suffixes = c(".Income", ".Asthma_Rate"))
head(Cali_combined)

(注意:如果有下划线或我没有看到的内容,请将 by 修复为“县名”的标题)

然后,您可以对成对的完整观察结果进行相关性分析(例如)

with(Cali_combined, 
  cor(Rank.Income, Rank.Asthma_Rate,
    use = "pairwise.complete.obs",
    method = "spearman")
)

查看?cor要使用哪些观察的其他选项,但仅对于 2 个变量,这相当于complete.obs.


推荐阅读