当分别传递属性和在数据帧中传递属性时,cor函数给出不同的值

时间:2019-05-04 17:19:01

标签: r dataframe correlation

我正在尝试使用cor()函数来查找数据帧中不同属性之间的相关性。当我分别传递属性时,例如:

cor_or1_or7 = cor(plant_data$Orientation1, plant_data$Orientation7, 
                  method = "pearson", use = "complete.obs")

我得到plant_data $ Orientation1和plant_data $ Orientation7之间的相关性是-0.8696721

但是当我传递包含所有属性的整个数据框时,对于同一对属性,我得到的值为-0.89070093。

我用于将整个数据帧传递到cor()函数的代码:

correlation_table <- cor(plant_data[2:19], method = "pearson", use = "complete.obs")

数据框中共有18个属性,其中包含724个实例。

我似乎无法弄清楚为什么将应用于相同值集的相同函数给出不同的答案!谁能告诉我这是怎么回事?谢谢!

1 个答案:

答案 0 :(得分:0)

这是因为使用complete.obs参数,取决于您的NA位于第2-19列中其他变量中的位置,示例将发生变化。假设您具有方向1和方向7的整个数据集,例如n = 50,则在关联计算中使用了全部50个数据点,仅调用了这两个变量。如果在另一个变量中有3个NA且n = 47,则通过调用整个数据框,在计算相关系数之前,将为所有变量n = 47个数据点,因此方向1和7的值将更改。