次のコードを検討してください
MyClass <- setRefClass("MyClass",
fields = list(body = "vector"),
methods = list(
initialize = function(length){
body <<- sample(-100:100, length) / 100
}
)
)
myFunction <- function(classA, classB){
cut <- sample(1:length(classA$body), 1)
new.bodyA <- c(classA$body[1:cut], classB$body[cut+1:length(classB$body)])
new.bodyB <- c(classB$body[1:cut], classA$body[cut+1:length(classA$body)])
classA$body <- new.bodyA
classB$body <- new.bodyB
return(list(classA, classB))
}
a <- MyClass$new(10)
b <- MyClass$new(10)
myFunction(a, b)
私が達成しようとしているのは、ランダムな要素インデックスに基づいて、2 つの指定されたベクトルの要素を組み合わせた 2 つの新しいベクトルです。
何が起こっているのかわかりませんが、これを実行すると、新しいベクトルには NA 値が含まれます。
[[1]]
Reference class object of class "MyClass"
Field "body":
[1] 0.50 -0.67 0.69 -0.43 0.12 -0.82 0.76 0.72 -0.02 -0.31 NA NA NA NA NA NA NA
[[2]]
Reference class object of class "MyClass"
Field "body":
[1] 0.18 0.41 0.11 0.14 0.52 -0.67 -0.30 -0.85 -0.45 0.33 NA NA NA NA NA NA NA
なぜこれが起こっているのかわかりません - 関数は正しく動作しますが、NA 値を回避する方法がわかりません。誰かがなぜこれが起こっているのかを説明し、回避策を提案できますか?
どうもありがとう