It is initialization issue.
Let's use df2 instead of df. 
df <- rbind(
c(1,0,0,1),
c(1,0,0,1),
c(0,1,0,1),
c(0,1,1,0),
c(1,0,1,0),
c(1,0,0,0),
c(0,1,0,1),
c(1,1,1,0),
c(0,0,1,1),
c(1,0,1,1))
#> initialization
df2 <- df*0
for (j in 1:nrow(df)) {
for (i in 1:ncol(df)) {
df2[j,i] <- (sum(df[j,])*sum(df[,i]))/nrow(df)
}
}
#> print
df2
#> output
> df2
[,1] [,2] [,3] [,4]
[1,] 1.2 0.8 1.0 1.2
[2,] 1.2 0.8 1.0 1.2
[3,] 1.2 0.8 1.0 1.2
[4,] 1.2 0.8 1.0 1.2
[5,] 1.2 0.8 1.0 1.2
[6,] 0.6 0.4 0.5 0.6
[7,] 1.2 0.8 1.0 1.2
[8,] 1.8 1.2 1.5 1.8
[9,] 1.2 0.8 1.0 1.2
[10,] 1.8 1.2 1.5 1.8