I wondering why my first if statement returns Error when my input data is a vector?
I have clearly stated for the first if statement to only turn on IF the data class is "data.frame", am I missing anything here?
standard <- function(data){
if(class(data) == "data.frame" & ncol(data) > 1){
data[paste0(names(data), ".s")] <- scale(data)
data
}
if(class(data) == "data.frame" & ncol(data) == 1){
colnames(data) <- paste0(names(data), ".s")
data <- scale(data)
data
}
if(class(data) != "data.frame"){
d <- as.data.frame(data)
colnames(d) <- paste0("Var", ncol(d), ".s")
data <- scale(d)
data
}
}
###### EXAMPLES: #######
standard(mtcars[,2]) ##Problem: `Error in if(class(data) == "data.frame" & ncol(data) > 1)`
standard(mtcars["wt"]) ## OK
standard(mtcars) ## OK
Aucun commentaire:
Enregistrer un commentaire