루프 후에 행렬의 각 셀의 분산을 어떻게 계산합니까?행렬의 각 셀에 대한 반복 이후의 분산을 계산합니다.
지금까지이 있습니다
m = matrix(0,10,10)
n = 100
v = 1
rad2 <- function(matrix, repeats, v) {
idx <- sample(length(matrix), repeats, replace = TRUE) # indices
flip <- sample(c(-1, 1), repeats, replace = TRUE) # subtract or add
newVal <- aggregate(v * flip ~ idx, FUN = sum) # calculate new values for indices
matrix[newVal[[1]]] <- matrix[newVal[[1]]] + newVal[[2]] # add new values
variance = M2/(n-1)
return(matrix)
}
을 그래서 지금 내가 할 경우 :
rad2(m, n, v)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 0 0 0 1 0 -2 1 -2 1 0
[2,] 1 1 0 0 0 0 -1 2 0 -2
[3,] -1 1 -1 1 0 0 0 1 -1 -1
[4,] 0 0 1 0 1 0 1 1 1 -1
[5,] 0 1 1 -2 0 0 1 0 -1 -1
[6,] -2 -3 0 1 1 0 0 1 0 -2
[7,] 0 0 0 1 0 2 -1 0 -1 1
[8,] 2 0 -1 0 -1 -1 -1 0 -1 0
[9,] 0 0 1 1 -1 1 1 0 0 1
[10,] 0 -3 1 0 -2 0 0 -2 -1 0
내가이 기능의 100 개 반복 한 후 각 셀의 분산을 계산합니다. 출력은 테이블 또는 벡터에있을 수 있습니다. 마지막에는 100 개의 값이 있어야합니다. 어떻게해야합니까?
편집 :
나는이 대신 할 경우 :
n=10
for (i in 1:n) {
tmp <- rad(m)
m <- tmp
outv <- unlist(sapply(m, function(x) var(m)))
finalv <- outv
}
내가 finalv의 출력을 얻을. 그러나 반복적으로 반복해서 쓰는 대신 매트릭스의 각 루프 이후에 각 셀의 분산 값을 대체하려면 어떻게해야합니까?
은 함수에 오류가 있습니다. M2는 행렬이어야합니다. 또한 객체에 혼동을 일으키는 공통 함수의 이름을 지정하지 않아도됩니다. – CCurtis