Rの動作を調べていると、奇妙なことがわかりました。
これは私が使用しているパッケージであるため、参考としてパッケージ geoR を使用します。
リストのサブセット化がどのように機能するかを理解していないようです。次のコードがあります。
install.packages("geoR", dependencies = T)
library(geoR)
v.1 <- variog(wolfcamp)
v.2 <- variog(wolfcamp, trend = "1st")
vg <- list(v.1, v.2)
names(vg) <- c("Constant", "Linear")
ここでは、2 つのバリオグラムを作成します (これらの関数の性質は関係ありません)。すぐに確認できるように、これらは「バリオグラム」クラスのオブジェクトです。
各バリオグラム内には、抽出したい 2 つのベクトル "u" と "v" があります。それらをリストに入れているので、単純なサブセット化でそれらを取得できると期待しています。
>vg[1]$Constant$u
[1] 16.77718 50.33154 83.88591 117.44027 150.99463 184.54899 218.10335
[8] 251.65772 285.21208 318.76644 352.32080 385.87517 419.42953
>vg[1]$Constant$v
[1] 1796.634 3690.930 7857.991 12440.353 23165.716 31798.304
[7] 38956.743 52007.883 67601.931 94523.535 159900.019 186464.824
[13] 219033.678
ここで、中央のサブセットを引用符で囲んで同じオブジェクトを呼び出すと、同じ結果が得られます。
> vg[1]$"Constant"$u
[1] 16.77718 50.33154 83.88591 117.44027 150.99463 184.54899 218.10335
[8] 251.65772 285.21208 318.76644 352.32080 385.87517 419.42953
しかし、関数の出力または関数の出力として定義されたオブジェクトでサブセットを呼び出すと、出力は同じではありません。
k <- names(vg)[1]
> vg[1]$k$u
NULL
なぜこれが起こるのですか?クラスバリオグラムの定義方法の核心と関係がありますか、それともリストのサブセット化について私が理解できないことがありますか? ありがとうございました