2016-04-18 3 views
2

В моем кадре данных my.data содержатся как числовые, так и факторные переменные. Я хочу стандартизировать только числовые переменные в этом фрейме данных.Как стандартизировать фрейм данных, который содержит как числовые, так и факторные переменные

> mydata2=data.frame(scale(my.data, center=T, scale=T)) 
Error in colMeans(x, na.rm = TRUE) : 'x' must be numeric 

Могла ли стандартизация работать этим? Я хочу стандартизировать столбцы 8,9,10,11 и 12, но я думаю, что у меня неправильный код.

mydata=data.frame(scale(flowdis3[,c(8,9,10,11,12)], center=T, scale=T,)) 

Заранее спасибо

+3

'MyData [sapply (MYDATA, is.numeric)] <- lapply (MYDATA [sapply (MYDATA, есть. число)], масштаб, центр = ИСТИНА, масштаб = ИСТИНА) 'возможно – Frank

ответ

6

Вот один вариант стандартизировать

mydata[] <- lapply(mydata, function(x) if(is.numeric(x)){ 
        scale(x, center=TRUE, scale=TRUE) 
         } else x)