[R-br] Verificar a normalidade em todo o data frame

Elias Carvalho ecacarva em gmail.com
Sexta Maio 6 09:12:37 BRT 2016


Bom dia Pessoal

Eu 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 matriz*
   commandP <- paste("nmatrix[",x,",1] <- names(data)[x]", sep="")
   eval(parse(text=commandP))
* # aplicar apenas para variaveis continuas*
* if (!is.factor(data$names(data)[x])) *
    {
      *# na coluna 2 da matriz insere valores referente a skewness*
      commandP <- paste("nmatrix[",x,",2] <- round(skewness(data$",
names(data)[x],"),2)", sep="")
      eval(parse(text=commandP))
      *# na coluna3 da matriz insere valores referente a kurtosis*
      commandP <- 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áveis
      commandP <- 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áveis*
      commandP <- paste("qqnorm(data$", names(data)[x],")", sep="")
      eval(parse(text=commandP))
*      # Insere a linha no gráfico      *
      commandP <- 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ão

Obrigado
-

Elias
<http://lattes.cnpq.br/4248328961021251>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160506/7eed17d2/attachment-0001.html>
-------------- Próxima Parte ----------
Um anexo não-texto foi limpo...
Nome: Captura de tela de 2016-05-06 09:03:53.png
Tipo: image/png
Tamanho: 95273 bytes
Descrição: não disponível
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160506/7eed17d2/attachment-0001.png>


Mais detalhes sobre a lista de discussão R-br