7

基本的にリストであるコンテナクラスがあります。サブセット化をサポートしたかったので、サブセット[演算子をオーバーロードしました (実装が不十分である可能性があります)。

#' Constructor for spectra object
.spectra = function(n_spectrum = 0) {
    object        = vector(mode = "list", n_spectrum)
    class(object) = "spectra"
    return(object)
}

#' Operator overload
#' @export
`[.spectra` = function(x, i) {
    x = unclass(x)
    x = x[i]                  # Using the list's subset function
    class(x) = "spectra"
    return(x)                 # Should return a "spectra" object, not a list
}

これで、開発環境 (パッケージのデバッグ時) では期待どおりに動作します。つまり、y_oldspectraオブジェクトであり、私が行う場合でも、 はy_new = y_old[-1]オブジェクトです。y_newspectra

ただし、プロジェクトをパッケージとしてコンパイルしてインストールすると、サブセット演算子はオブジェクトではlistなくa を返しspectraます。

何が起こっているかの手がかりはありますか?

編集

RStudio とdevtoolsライブラリを使用していることを忘れていました。

4

1 に答える 1