Bom dia PessoalEu tenho o seguinte data frame:'data.frame': 1999 obs. of 14 variables: $ AGE: int 21 31 44 46 49 50 52 64 23 33 ... $ PHA: Factor w/ 2 levels "NO","YES": 1 1 1 1 1 1 1 1 2 2 ... $ SMK: Factor w/ 2 levels "NO","YES": 1 1 1 1 1 1 1 1 1 1 ... $ ALC: Factor w/ 2 levels "NO","YES": 1 1 1 1 1 NA 2 NA 1 NA ...E preciso rodar uma rotina para verificar a normalidade de cada variável de uma só vez, então fiz assim (ps: me perdoem o 'for' eu sou programador das antigas e ainda estou aprendendo a user os ...apply):for (x in 1:length(names(data))) # vai de 1 a 4 passando por todas as variáveis{# Insere o nome da variável em uma matrizcommandP <- paste("nmatrix[",x,",1] <- names(data)[x]", sep="")eval(parse(text=commandP))# aplicar apenas para variaveis continuasif (!is.factor(data$names(data)[x])){# na coluna 2 da matriz insere valores referente a skewnesscommandP <- paste("nmatrix[",x,",2] <- round(skewness(data$", names(data)[x],"),2)", sep="")eval(parse(text=commandP))# na coluna3 da matriz insere valores referente a kurtosiscommandP <- paste("nmatrix[",x,",3] <- round(kurtosis(data$", names(data)[x],"),2)", sep="")eval(parse(text=commandP))# gera um histograma para cada variável já com par(mfrow...) calculado de acordo com o# numero de variáveiscommandP <- paste("hist(data$", names(data)[x],")", sep="")eval(parse(text=commandP))# gera um gráfico de quartil para cada variável já com par(mfrow...) calculado de# acordo com a quantidade de variáveiscommandP <- paste("qqnorm(data$", names(data)[x],")", sep="")eval(parse(text=commandP))# Insere a linha no gráficocommandP <- paste("abline(0,1)", sep="")eval(parse(text=commandP))}O Resultado que quero parecido com o abaixo, mas para todas as variáveis:nmatrix [,1] [,2] [,3] [1,] "AGE" "-0.13" "2.28"
O meu problema é na linha if (!is.factor(data$names(data)[x])) que identifica todas as variáveis como caracter, o que não está errado, pois pega por exemplo "AGE" e então sempre retorna falso e na verdade eu queria algo como "!is.factor(data$AGE), !is.factor(data$SMK)....ou se alguem conhecer um pacote que faça isso de maneira mais fácil agradeço a sugestãoObrigado-
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.