如果我对你的意图理解正确的话。以下能解决你的问题。
y<-rnorm(5,0,1)
d<-diag(c(1,2,3,4,5))
f<-function(i,u)
{ y <- get('y', envir = .GlobalEnv) #avoid confused input
d[i,i]^2*(y-mean(y))/(d[i,i]+u)}
u <- 2
test <- sapply(1:5, function(i) f(i,u)) #return result for each iteration in matrix
colSums(test) #sum column