R でのオブジェクト指向プログラミングは初めてで、オブジェクトを変更する関数を適切に記述する方法に苦労しています。
この例は機能します:
store1 <- list(
apples=3,
pears=4,
fruits=7
)
class(store1) <- "fruitstore"
print.fruitstore <- function(x) {
paste(x$apples, "apples and", x$pears, "pears", sep=" ")
}
print(store1)
addApples <- function(x, i) {
x$apples <- x$apples + i
x$fruits <- x$apples + x$pears
return(x)
}
store1 <- addApples(store1, 5)
print(store1)
しかし、オブジェクト全体を返さずにこれを行うためのよりクリーンな方法があるはずです。
addApples(store1, 5) # Preferable line...
store1 <- addApples(store1, 5) # ...instead of this line
Rで変更関数を書く適切な方法は何ですか? 「<<-」?
更新: R で OOP のロゼッタ ストーンになったものに感謝します。非常に有益です。私が解決しようとしている問題は、フローの点で非常に複雑であるため、参照クラスの厳格さが構造を助けてくれる可能性があります。1つだけではなく、すべての回答を回答として受け入れることができれば幸いです。