考虑以下代码
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)
我想要实现的是两个新向量,它们根据随机元素索引组合两个给定向量的元素。
我不确定发生了什么,但是当我运行它时,新向量将包含 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 值。有人可以解释为什么会这样,并提出解决方法吗?
非常感谢