オブジェクトの多項式を自動的に作成する関数を作成しようとしていzoo
ます。Python に由来する一般的な方法は、ループの外側にリストを作成し、for
ループの内側にリストを追加することです。これに続いて、Rで以下のコードを書きました:
library("zoo")
example<-zoo(2:8)
polynomial<-function(data, name, poly) {
##creating the catcher object that the polynomials will be attached to
returner<-data
##running the loop
for (i in 2:poly) {
#creating the polynomial
poly<-data^i
##print(paste(name, i), poly) ##done to confirm that paste worked correctly##
##appending the returner object
merge.zoo(returner, assign(paste(name, i), poly))
}
return(returner)
}
#run the function
output<-polynomial(example, "example", 4)
ただし、関数を実行すると、R は例外をスローしませんが、出力オブジェクトには、example
zoo オブジェクトで最初に作成したもの以外の追加データはありません。私は誤解しているmerge.zoo
か、ループ内の多項式の名前を動的に再割り当てすることを許可されているのではないかと思います。
考え?