2

ddply(パッケージ plyr) を cor と共に使用して、因子 (「プロット」) で分割されたピアソン相関を計算したいと考えています。列が列名としてcorに渡された場合は正常に実行できますが、列番号で渡された場合はできません。

日付枠:

     head(chlor2013.df)

  Plot  X645  X665 Chlorophyll
1    1 0.019 0.054      0.3647
2    1 0.061 0.170      1.1588
3    1 0.021 0.054      0.3827
4    2 0.033 0.092      0.6270
5    2 0.055 0.148      1.0259
6    2 0.018 0.045      0.3234

ddplycor、およびデータ フレームの列名を使用します。

ddply(chlor2013.df, .(Plot), summarize, cor.v2.v3 = cor(X645,X665, use="complete.obs"))

    Plot cor.v2.v3
1    1 0.9610698
2    2 0.9261662
3    3 0.9191197
4    4 0.9104561
5    5 0.9541877
6    6 0.8750801
7    7 0.9949413

各行が一意の相関値を示していることに注意してください。上記は私が欲しいものです。

ddplycor、およびデータ フレームの列番号を使用します。

ddply(chlor2013.df, .(Plot), summarize, cor.v2.v3 = cor(chlor2013.df[2:3], 
use="complete.obs"))

Plot cor.v2.v3.1 cor.v2.v3.2
1     1   1.0000000   0.9698445
2     1   0.9698445   1.0000000
3     2   1.0000000   0.9698445
4     2   0.9698445   1.0000000
5     3   1.0000000   0.9698445
6     3   0.9698445   1.0000000
7     4   1.0000000   0.9698445
8     4   0.9698445   1.0000000
9     5   1.0000000   0.9698445
10    5   0.9698445   1.0000000
11    6   1.0000000   0.9698445
12    6   0.9698445   1.0000000
13    7   1.0000000   0.9698445

これで、すべての r 値が同一になり、係数で分割されていない場合の 2 つの列の相関関係を表します。そのため、列番号の構文は列名の構文とは異なります。私は何が欠けていますか?

最終的に、3 つの変数 (X645、X665、およびクロロフィル) の相関行列を Plot で分割して計算したいと考えています。

ありがとう

4

1 に答える 1