[c“ COLUMNNAME”]和df $ COLUMNNAME之间的区别,给出2种不同的测试结果

时间:2019-10-03 16:36:04

标签: r dataframe vector

我正在R中运行瑞利一致性测试。我将数据帧分为3列,程度略有不同。然后,它运行测试以选择列之一时,我的结果会有所不同,具体取决于我如何选择要在测试中使用的列:[c“ Direction”]或df $ Direction。

我的df:

Direction Dir180 CorrDirection    Sex Location
1       146    146           128 Female      Low
2       129    129           111   Male      Low
3       337    157           319 Female      Low
4       130    130           112 Female      Low
5       216     36           198 Female      Low
6       351    171           333   Male      Low

测试:

r.test(x=df2[c("Direction")],degree=T)
r.test(x=df2$Direction,degree=T)

测试结果:

> r.test(x=df2[c("Direction")],degree=T)
$r.bar
[1] 3.265616

$p.value
[1] 0.002646553

> r.test(x=df2$Direction,degree=T)
$r.bar
[1] 0.03887638

$p.value
[1] 0.880773

我想知道为什么在我看来要选择同一列进行测试时却得到不同的结果。使用两种不同方法之间的区别是什么?测试或程序对每种方法有何反应?谢谢

1 个答案:

答案 0 :(得分:0)

问题在于,第一个是带有单列的data.frame,第二个是向量。如果我们通过为列索引包括,来将列提取为向量(如果是tibble,请使用[[)。根据{{​​1}}

  

r.test(x,degree = FALSE)

     

x-弧度角测量的向量。

因此它期望?r.test而不是vector

data.frame

提取library(CircStats) r.test(x=df2[,c("Direction")],degree=TRUE) #$r.bar #[1] 0.2321319 #$p.value #[1] 0.740345 的结果将与我们处理$的结果相同

vector

数据

r.test(x=df2$Direction,degree=T)
#$r.bar
#[1] 0.2321319

#$p.value
#[1] 0.740345