1

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

なぜこれが起こるのですか?クラスバリオグラムの定義方法の核心と関係がありますか、それともリストのサブセット化について私が理解できないことがありますか? ありがとうございました

4

1 に答える 1