Como criar um quadro de dados a partir do zero em R

A conversão de uma matriz a uma trama de dados em R não pode ser usado para construir uma trama de dados com diferentes tipos de valores. Se você combinar ambos os dados numéricos e de caracteres em uma matriz, por exemplo, tudo será convertido em personagem.

Você pode construir um quadro de dados a partir do zero, no entanto, usando o quadro de dados() função.

Faça um quadro de dados a partir de vectores em R

Então, vamos fazer uma moldura de dados pouco com os nomes, salários e datas de início de alguns colegas de trabalho imaginários. Primeiro, você cria três vectores que contêm as informações necessárias como esta:

> empregado lt; - c ( 'John Doe', 'Peter Gynn', 'Jolie Esperança')> salário lt; - c (21000, 23400, 26800)> startdate lt; - as.Date (C ( '2010/11/01', '2008/03/25', '2007/03/14'))

Agora você tem três vetores diferentes em sua área de trabalho:

  • UMA vector caráter chamado empregado, contendo os nomes

  • UMA vector numérica chamado salário, contendo os salários anuais

  • UMA data vector chamado data inicial, contendo as datas em que os contratos iniciados

Em seguida, combinar os três vetores em um quadro de dados usando o seguinte código:

> employ.data lt; - data.frame (empregado, salário, startdate)

O resultado disto é um quadro de dados, employ.data, com a seguinte estrutura:

> Str (employ.data) 'data.frame': 3 obs. de 3 variáveis: $ empregado: Fator w / 3 níveis de "John Doe", "Jolie esperança", ..: 1 3 2 $ salarial: num 21000 23400 26800 $ startdate: Data, formato: "2010-11-01" " 2008-03-25 "...

Para combinar um número de vetores em um quadro de dados, é simples adicionar todos os vetores como argumentos para o quadro de dados() função, separados por vírgulas. R vai criar uma trama de dados com as variáveis ​​que são nomeados os mesmos que os vectores utilizados.

Mantenha personagens como personagens em R

Você deve ter notado algo estranho quando se olha para a estrutura do employ.data. Considerando que o vetor empregado é um vetor de caracteres, R feitas a variável empregado nos dados enquadrar um fator.

R faz isso por padrão, mas você tem um argumento extra ao quadro de dados() função que pode evitar isso - ou seja, o argumento stringsAsFactors. No employ.data exemplo, você pode impedir a transformação de um elemento do empregado variável usando o seguinte código:

> employ.data lt; - data.frame (empregado, salário, startdate, stringsAsFactors = FALSE)

Se você olhar para a estrutura do quadro de dados agora, você vê que a variável empregado é um vector de caracteres, como mostrado no seguinte resultado:

> Str (employ.data) 'data.frame': 3 obs. de 3 variáveis: $ empregados: chr "John Doe" "Peter Gynn" "Jolie esperança" $ Salário: NUM 21000 23400 26800 $ Data de início: Data, formato: "2010-11-01" "2008-03-25" .. .

Por padrão, R sempre transforma vetores de caracteres para fatores ao criar um quadro de dados com vetores de caracteres ou converter uma matriz de caracteres para um quadro de dados. Esta pode ser uma causa desagradável de erros em seu código se você não está ciente disso. Se você torná-lo um hábito para especificar sempre a stringsAsFactors argumento, você pode evitar muita frustração.

menu