There is just some wonkiness to how you are asking it to do what you want it to do, if I understand your interpretation right:
You are asking the loop to save into each row of each column, the value of that row and column minus the minimum of that whole column (i) which is divided by the difference between the min and max for that column.
to do this, you should let it look at all the rows as well, working down each row(j)
in each column(i)
before moving on the the next column.
This is not how I would normalize my data personally, but to build on what you seem to be doing the way that you are doing it, this would be the way add a second loop and iterator:
for(i in 1:56){
for(j in 1:nrow(clean_data)){
clean_data[j ,i] <-(clean_data[j,i] - min(clean_data[,i])) / (max(clean_data[,i]) - min(clean_data[,i]))
}
}
this takes the value from the current row, column combinations and adjusts it using your formula for the full column.