Question: By default, a SQLServer table clustered index is the PK. If I define that:

* such key is a GUID and
* I will generate at random a.k.a `Guid.NewGuid()` and
* forget to set the clustered index to a more meaningful column

will SQLServer reorder the pages as a new record enters the table or will it just "ignore" the clustered part of the index?

Answer: 
You can normalize each column without converting to a data frame with the `apply` function:

```
apply(mym, 2, normalize)
#   (Intercept)   a   b   c
# 1         NaN 0.0 0.0 0.0
# 2         NaN 0.5 0.5 0.5
# 3         NaN 1.0 1.0 1.0

```

You probably actually want to leave the intercept untouched, with something like:

```
cbind(mym[,1,drop=FALSE], apply(mym[,-1], 2, normalize))
#   (Intercept)   a   b   c
# 1           1 0.0 0.0 0.0
# 2           1 0.5 0.5 0.5
# 3           1 1.0 1.0 1.0

```
Another option is to vectorize this using the very useful `matrixStats` package (though TBH`apply` is usually very efficient too on matrices and when applied on columns). This way you get to keep your original data structure too

```
library(matrixStats)
Max <- colMaxs(mym[, -1]) 
Min <- colMins(mym[, -1])
mym[, -1] <- (mym[, -1] - Min)/(Max - Min)
mym
#   (Intercept)   a   b   c
# 1           1 0.0 0.0 0.0
# 2           1 0.5 0.5 0.5
# 3           1 1.0 1.0 1.0
# attr(,"assign")
# [1] 0 1 2 3

```