Professional Documents
Culture Documents
© 1990 WN Venables de
Copyright c © 1992 WN Venables & DM Smith de Copyright c
© 1997 R. Gentleman & R. Ihaka de Copyright
c © 1997, 1998 M. Maechler
copyright c © 1999-2018 R Core Team
É dada permissão para fazer e distribuir cópias deste manual desde o aviso de copyright e este aviso de
permissão sejam preservados em todas as cópias. É concedida permissão para copiar e distribuir versões
modificadas deste manual sob as condições da cópia literal, desde que todo o trabalho derivado resultante é
distribuído sob os termos de um aviso de permissão idêntica a esta. É concedida permissão para copiar e
distribuir traduções deste manual para outro idioma, sob as condições acima para versões modificadas, exceto
que este aviso de permissão pode ser afirmado em uma tradução aprovada pela Core Team R.
Eu
Índice
Prefácio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1 Introdução e preliminares. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1 O ambiente de R. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 relacionadas software e documentação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 R e estatísticas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1,4 o sistema de janelas e R. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5 Uso R interactivamente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.6 Uma sessão introdutória. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.7
1 7 Ob
Obter
e aajuda
uda com as funções
unções e ca
características.
ac e s cas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1 8 comandos R sens b dade caso e c 4
1 9 Reca e co eção dos comandos an e o es 5
1 10 A execução de comandos a pa de ou desv a sa da pa a um a qu vo 5
1 11 pe manênc a de dados e ob e os de emoção 5
11 Os modelos estatísticos em R. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
11.1 Definindo modelos estatísticos; fórmulas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
11.1.1 contrastes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
11.2 modelos lineares. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
11.3 funções genéricas para extrair informações do modelo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
11,4 análise de variância e comparação de modelos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
11.4.1 tabelas ANOVA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
11,5 Actualização dos modelos montados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
11.6
11 6 mode
modelos
os lineares
nea es gene
generalizados.
a zados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
11 6 1 am as 57
11 6 2 O GLM unção 57
11 7 m n mos quad ados não nea e mode os máx ma ve oss m hança 59
11 7 1 dos m n mos quad ados 59
11 7 2 p obab dade máx ma 61
11 8 A guns mode os não pad ão 61
13 Pacotes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
13 1 paco es pad ão 77
13 2 paco es de Con bu ção e CRAN 77
13 3 namespaces 78
Apêndice B Invocando R. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
B.1 Invocando R partir da linha de comando. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
B.2 Invocando R no Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
B.3 Invocando R sob macos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Script B.4 com R. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Referênc as Apênd ce F. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
1
Prefácio
Nós gostaríamos de agradecer calorosamente a Bill Venables (e David Smith) para a concessão de permissão para
distribuir esta versão modificada das notas desta forma, e por ser um defensor da R do caminho de volta.
Comentários e correções são sempre bem vindos. Por favor, abordar e-mail a correspondência para
R-core@R-project.org.
Muitos usuários chegará a R principalmente por suas instalações gráficas. Consulte o Capítulo 12 [Graphics], página 63, que pode
ser lido em quase todo o tempo e não precisa esperar até que todas as seções anteriores foram digeridos.
2
1 Introdução e preliminares
1.1 O ambiente R
R é um conjunto integrado de instalações de software para manipulação de dados, cálculo e visualização gráfica. Entre outras
coisas, ele tem
• instalações gráficas para análise de dados e visualização seja diretamente no computador ou em cópia impressa e
• , Uma linguagem de programação simples e eficaz bem desenvolvido (chamado 'S'), que inclui condicionais, loops,
definidos pelo usuário funções recursivas e facilidades de entrada e saída. (Na verdade a maioria das funções do sistema
fornecido se estão escritos na linguagem S).
O termo “meio ambiente” se destina a caracterizá-lo como um sistema totalmente planejada e coerente, em vez de um acréscimo
incremental de ferramentas muito específicas e inflexíveis, como é frequentemente o caso com outro software de análise de dados.
R é muito mais um veículo por métodos de análise de dados interactiva desenvolver recentemente. Ele desenvolveu-se rapidamente,
e foi prorrogado por uma grande coleção de pacotes. No entanto, a maioria dos programas escritos em R são essencialmente efêmero,
escrito para uma única peça de análise de dados.
A evolução da linguagem S é caracterizado por quatro livros por John Chambers e co-autores. Para R, a referência de base
é A Nova S Idioma: um ambiente de programação para análise de dados e gráficos por Richard A. Becker John M. Chambers e
Allan R. Wilks. Os novos recursos da versão de S 1991 são cobertos em Modelos estatísticos em S editado por John
M. Chambers e Trevor J. Hastie. Os métodos formais e classes da métodos pacote são baseados naqueles descritos em Programação
com dados por John M. Chambers. Veja o Apêndice F [Referências], página 99, para referências precisas.
Há agora um número de livros que descrevem como usar R para análise de dados e estatísticas e documentação para S / S-Plus
pode ser tipicamente utilizada com R, mantendo-se as diferenças entre as implementações S em mente. Veja a Seção “Que
documentação existe para R?” Em O FAQ sistema estatístico R.
1.3 R e estatísticas
Nossa introdução ao meio ambiente R não mencionou Estatisticas, No entanto, muitas pessoas usam R como um sistema de
estatísticas. Preferimos pensar sobre isso de um ambiente no qual muitas técnicas estatísticas clássicas e modernas foram
implementadas. Algumas delas estão incorporados no ambiente de base R, mas muitos são fornecidos como pacotes. Há cerca
de 25 pacotes fornecidos com R (chamado “padrão” e “recomendado” pacotes) e muitos mais estão disponíveis através da
família CRAN de sites Internet (via https://CRAN.R-project.org) e em outro lugar. Mais detalhes sobre pacotes são dadas mais
tarde (ver Capítulo 13 [Pacotes], página 77).
A maioria das estatísticas clássicas e grande parte da mais recente metodologia está disponível para uso com R, mas os usuários podem precisar estar
Existe uma diferença importante na filosofia entre S (e, portanto, R) e os outros sistemas estatísticos principais. Em S uma
análise estatística é normalmente realizado como uma série de passos, com os resultados intermédios de ser armazenado em
objectos. Assim, enquanto SAS e SPSS vai dar saída abundante a partir de uma análise de regressão ou discriminante, R dará
saída mínima e armazenar os resultados de um objecto em forma de interrogação subsequente por outras funções R.
A maioria dos usuários vai achar que é necessário para interagir diretamente com o sistema operacional em seu computador de
vez em quando. Neste guia, vamos discutir principalmente a interação com o sistema operacional em máquinas UNIX. Se você estiver
executando R sob o Windows ou MacOS você vai precisar fazer alguns pequenos ajustes.
Configurar uma estação de trabalho para tirar o máximo proveito dos recursos de personalização de R é um procedimento simples, se
um tanto tedioso, e não será considerado ainda mais aqui. Usuários em dificuldade deve procurar ajuda especializada local.
Neste ponto, você será perguntado se você deseja salvar os dados da sessão R. Em alguns sistemas isto irá abrir uma
caixa de diálogo, e em outros, você receberá um aviso de texto para que você possa responder sim não ou cancelar ( um
único letras vai fazer) para salvar os dados antes de sair, sair sem salvar, ou retornar para a sessão R. Os dados que é
salvo estará disponível em sessões de R futuras. Outras sessões R são simples.
2. Utilize o programa R, terminando com o q () comando no final da sessão. Para usar R no Windows o procedimento a seguir
é basicamente o mesmo. Criar uma pasta como o diretório de trabalho e definir que no Começar campo em seu atalho R. Em
seguida, inicie R clicando duas vezes sobre o ícone.
Capítulo 1: Introdução e preliminares 4
Uma alternativa é
> ?resolver
Para um recurso especificado por caracteres especiais, o argumento deve ser colocado entre aspas duplas ou individuais, tornando-se
uma “cadeia de caracteres”: Isto também é necessário para algumas palavras com significado sintático incluindo se, por e função.
> Socorro("[[")
De qualquer forma de aspas pode ser usado para escapar da outra, como no string " É importante". Nossa convenção é usar
aspas duplas para a preferência.
Na maioria das instalações de P ajuda está disponível em formato HTML, executando
> help.start ()
que irá lançar um navegador da Web que permite que as páginas de ajuda para ser navegado com hiperlinks. No UNIX, os pedidos de
ajuda subsequentes são enviados para o sistema de ajuda baseado em HTML. O link 'Search Engine e palavras-chave' na página
carregada por help.start () é particularmente útil, pois é contém uma lista conceito de alto nível que procura embora as funções
disponíveis. Pode ser uma ótima maneira de se orientar rapidamente e compreender a amplitude do que R tem para oferecer.
o help.search comando (alternativamente ??) permite procurar ajuda de várias maneiras. Por exemplo,
> ??resolver
> ?Socorro
comandos elementares consistem em qualquer expressões ou atribuições. Se uma expressão é dada como um comando, é
avaliada, impresso (a menos que especificamente tornada invisível), e o valor é perdido. Uma atribuição também avalia uma
expressão e passa o valor de uma variável, mas o resultado não é impressa automaticamente.
1 Para código de R portátil (incluindo aquela para ser usado em pacotes R), apenas A-Za-Z0-9 deve ser usado.
Capítulo 1: Introdução e preliminares 5
Os comandos são separados por um ponto e vírgula ( ';'), ou por uma nova linha. comandos elementares podem ser
agrupadas em uma expressão composto por cintas ( '{' e '}'). Comentários pode ser colocado quase 2 em qualquer lugar,
começando com uma insígnia ( '#'), tudo para o fim da linha é um comentário.
Se um comando não está completa no final de uma linha, R dará um prompt diferente, por padrão
na segunda e subsequentes linhas e continuar a ler a entrada até que o comando é sintacticamente completa. Essa solicitação
pode ser alterado pelo usuário. Nós geralmente omitir o prompt de continuação e indicam continuação por simples recuo.
linhas de comando inseridas no console são limitados 3 a cerca de 4095 bytes (não caracteres).
As capacidades de recall e edição sob UNIX são altamente personalizáveis. Você pode descobrir como fazer isso lendo a
entrada manual para o Leia a linha biblioteca.
Alternativamente, o editor de texto Emacs fornece mecanismos de apoio mais gerais (via ESS,
Emacs Fala Estatística) para trabalhar interativamente com R. Consulte a seção “R e Emacs” em O FAQ sistema estatístico R.
Para Windows Fonte Também está disponível no Arquivo cardápio. A função Pia,
desviará toda a saída posterior a partir do console para um arquivo externo, record.lis. O comando
> Pia()
Durante uma sessão R, os objetos são criados e armazenados pelo nome (discutiremos esse processo na próxima seção). O
comando R
> (objectos)
(alternativamente, ls ()) pode ser usado para exibir os nomes de (a maioria) os objetos que estão atualmente armazenados dentro R. A coleção
de objetos armazenados atualmente é chamado de área de trabalho.
2 não dentro cordas, nem dentro da lista de argumentos de uma definição de função
3 alguns dos consoles não vai permitir que você digite mais, e entre aqueles que fazer alguma irá silenciosamente descartar
Todos os objetos criados durante uma sessão de R podem ser armazenados permanentemente em um arquivo para uso em sessões R
futuras. No final de cada sessão R é-lhe dada a oportunidade de salvar todos os objetos disponíveis atualmente. Se você indicar que você quer
fazer isso, os objetos são gravados em um arquivo chamado
. RDATA 5 no diretório atual, e as linhas de comando usados na sessão são salvos em um arquivo chamado. Rhistory.
Quando R é iniciado no momento mais tarde do mesmo diretório que recarrega o espaço de trabalho a partir deste arquivo. Ao mesmo
tempo, a história comandos associado é recarregado.
Recomenda-se que você deve usar diretórios de trabalho separados para análises conduzidas com R. É bastante comum
para objetos com nomes X e y a ser criado durante uma análise. Nomes como este são muitas vezes significativos no contexto
de uma única análise, mas ele pode ser bastante difícil decidir o que pode ser quando as várias análises foram realizadas no
mesmo diretório.
5O “ponto” líder neste nome do arquivo torna invisível em listas de arquivos normais em UNIX, e em arquivo de GUI padrão
Isto é um tarefa declaração usando o função c () que neste contexto pode ter um número arbitrário de vetor argumentos e
cujo valor é um vetor tem concatenando os seus argumentos de ponta a ponta. 1
Um número ocorrendo por si numa expressão é tomada como um vector de comprimento um. Observe que o operador de
atribuição ( '<-'), que consiste em dois caracteres '<' ( “menos do que”) e '-' ( “menos”) que ocorre estritamente lado-a-lado e
'pontos' para o objeto receber o valor da expressão. Na maior parte dos contextos, o operador '=' pode ser utilizado como uma
alternativa.
Atribuição também pode ser feita usando a função atribuir(). Uma maneira equivalente de fazer a mesma tarefa como acima
é com:
O operador de costume, <-, pode ser pensado como um sintática atalho para isso.
Atribuições também pode ser feita em outra direção, usando a mudança óbvia no operador de atribuição. Assim, a mesma
atribuição poderia ser feito usando
Se a expressão é utilizada como um comando completo, o valor é impresso e perdido 2. Portanto, agora se tivéssemos que usar o
comando
>1/x
os recíprocos dos cinco valores seria impresso no terminal (e o valor de x, é claro, inalterado).
criaria um vector y com 11 entradas, constituídos por duas cópias de X com um zero no lugar do meio.
> v <- 2 * x + y + 1
gera um novo vetor v de comprimento 11 construído pela soma, elemento por elemento, 2 * x
repetidas 2,2 vezes, y repetido apenas uma vez, e 1 repetido 11 vezes.
1 Com excepção tipos vetor de argumento, como Lista argumentos modo, a ação da c () é bastante diferente.
Os operadores aritméticos elementares são os habituais +, -, *, / e ^ para elevar a uma potência. Além de todas as funções
aritméticas comuns estão disponíveis. log, exp, sin, cos, tan, sqrt,
e assim por diante, todos têm o seu significado usual. max e min selecionar os elementos maiores e menores de um vetor,
respectivamente. alcance é uma função cujo valor é um vector de comprimento dois, a saber c (min (x), max (x)). comprimento (x) é o
número de elementos em x, soma (x) dá o total dos elementos em
x, e prod (x) seu produto.
Duas funções estatísticas são significa (x) que calcula a média da amostra, o que é o mesmo que soma (x) / comprimento
(x), e var (x) que dá
ou variância da amostra. Se o argumento para var () é um n- por- p matriz o valor é um p por- p matriz da amostra covariância tem por
sobre as linhas como independente p vectores de amostra variado.
sort (x) retorna um vector do mesmo tamanho X com os elementos dispostos em ordem crescente; no entanto, existem outras
instalações de classificação mais flexíveis disponíveis (ver ordem() ou sort.list ()
que produzem uma permutação para fazer a classificação).
Observe que max e min selecionar os valores maiores e menores em seus argumentos, mesmo se eles são dados vários vetores.
o paralelo funções máximos e mínimos pmax e pmin retornar um vector (de comprimento igual ao seu argumento mais longo) que
contém em cada elemento do maior elemento (o mais pequeno) em que a posição em qualquer um dos vectores de entrada.
Na maioria dos casos o usuário não vai se preocupar se os “números” em um vetor numérico são inteiros, reais ou até mesmo
complexo. cálculos internamente, são feitos como números reais de precisão dupla, ou números complexos de precisão dupla, se
os dados de entrada são complexas.
Para trabalhar com números complexos, fornecer uma parte complexa explícito. portanto
sqrt (-17)
A construção 30: 1 pode ser usado para gerar uma sequência para trás. A função seq () é uma instalação mais geral para a
geração de sequências. Ele tem cinco argumentos, dos quais apenas alguns podem ser especificados em qualquer uma chamada.
Os primeiros dois argumentos, se for dada, especificar o início e fim da sequência, e se estes forem os únicos dois argumentos
fornecidos o resultado é o mesmo que o operador do cólon. Isso é seq (2,10) é o mesmo vector que 2:10.
argumentos para seq (), e muitas outras funções R, também pode ser dada em forma chamado, caso em que a ordem em que
aparecem é irrelevante. Os primeiros dois argumentos podem ser nomeados
de = valor e to = valor; portanto seq (1,30), seq (a partir de = 1, a = 30) e seq (a = 30, a partir de = 1)
são todos o mesmo que 1.30. Os próximos dois argumentos para seq () pode ser nomeado por = valor e
comprimento = valor, que especificam um tamanho de passo e um comprimento para a sequência, respectivamente. Se nenhuma dessas é dada, o
padrão por = 1 é assumido.
Por exemplo
gera em s3 o vetor c (-5,0, -4,8, -4,6, ..., 4.6, 4.8, 5.0). similarmente
Uma função relacionada é rep () que pode ser usado para replicar um objeto de várias formas complicadas. A forma mais
simples é
que irá colocar cinco cópias X end-to-end S5. Outra versão é útil
> S6 <- rep (x, cada = 5)
que repete cada elemento de X cinco vezes antes de passar para a próxima.
conjuntos Temp como um vector do mesmo comprimento que X com valores FALSO correspondente a elementos de X
Os operadores lógicos são <, <=,>,> =, == pela igualdade exata e! = para a desigualdade. Além disso, se c1 e c2 são
expressões lógicas, em seguida, c1 e c2 é sua interseção ( "e"), c1 | c2 é a sua união ( "ou"), e! c1 é a negação de c1.
vetores lógicos podem ser usados na aritmética ordinária, caso em que eles são coagidos em vectores numéricos, FALSO tornando-se
0 e VERDADE tornando-se 1. No entanto, existem situações em que vetores lógicos e os seus homólogos numéricos forçadas não
são equivalentes, por exemplo, ver a próxima subseção.
A função is.na (x) dá um vetor lógico do mesmo tamanho X com valor VERDADE Se e só se o elemento correspondente
em X é N / D.
> z <- c (1: 3, NA); ind <- is.na (z)
Observe que a expressão lógica x == NA é bastante diferente do is.na (x) Desde a N / D não é realmente um valor, mas um marcador
para uma quantidade que não está disponível. portanto x == NA é um vector do mesmo comprimento que X todos de cujos valores são N / D como
a expressão lógica própria é incompleta e, portanto, indecidible.
Note que existe um segundo tipo de valores “perdidos” que são produzidas por computação numérica, o chamado Não é
um número, NaN, valores. Exemplos são
> 0/0
ou
que ambos dão NaN uma vez que o resultado não pode ser definido de forma sensata.
Em suma, is.na (xx) é VERDADE ambos para N / D e NaN valores. Para diferenciar estas,
is.nan (xx) é apenas VERDADE para NaN s. valores em falta são, por vezes, impresso como < NA> quando vetores de caracteres são
cadeias de caracteres são inseridos usando correspondência duplas ( ") ou simples ( ') citações, mas são impressos usando
aspas duplas (ou às vezes sem aspas). Eles usam sequências de escape de estilo C, usando \ como o caractere de escape,
então \\ é digitado e impresso como \\, e dentro de aspas "é inserido como \". Outras sequências de escape úteis são \ N, nova
linha, \ t, guia e \ b, backspace-ver
?Citações para uma lista completa.
vectores de caracteres podem ser concatenados num vector pela c () função; exemplos de seu uso vão surgir com
freqüência.
o colar() função recebe um número arbitrário de argumentos e concatena-los um por um para cadeias de caracteres.
Quaisquer números indicados entre os argumentos são coagidos a cadeias de caracteres na forma evidente, isto é, da mesma
forma que seria se eles foram impressos. Os argumentos são separados por padrão no resultado por um único caractere em
branco, mas isso pode ser alterado pelo argumento nomeado, sep = corda, que altera para corda, possivelmente vazio.
Por exemplo
c ( "X1", "Y2", "X3", "Y4", "X 5", "Y6", "X7", "Y8", "X 9", "Y10")
Nota particularmente que a reciclagem de listas curtas acontece aqui também; portanto c ( "X", "Y") é repetido 5 vezes para
igualar a sequência 1:10. 3
Subconjuntos dos elementos de um vector pode ser seleccionado pelo anexação o nome do um vector de
vetor índice entre colchetes. Mais geralmente, qualquer expressão que resulta em um vector pode ter subconjuntos de seus
elementos seleccionados de forma semelhante anexando um vector de índice em colchetes imediatamente após a expressão.
Tais vectores de índice pode ser qualquer um dos quatro tipos distintos.
1. Um vetor lógico. Neste caso, o vector de índice é reciclado para o mesmo comprimento que o vetor
a partir do qual os elementos estão a ser seleccionados. Os valores correspondentes ao VERDADE no vector de índice são seleccionados e
os correspondentes aos FALSO são omitidos. Por exemplo
cria (ou recria) um objecto y que irá conter os valores não ausentes de x, na mesma ordem. Note que se X tem valores em
falta, y será menor do que x. Além disso
cria um objecto z e os lugares em que os valores do vector x + 1 para o qual o valor correspondente em X era ao mesmo
tempo não falta e positiva.
3 colar (..., colapso = ss) junta-se aos argumentos em uma única cadeia de caracteres colocando ss entre, por exemplo, ss
<- "|". Há mais ferramentas para manipulação de caracteres, consulte a ajuda para sub e substring.
Capítulo 2: manipulações simples; números e vectores 11
2. Um vector de quantidades integrais positivos. Neste caso, os valores no vector índice deve situar
no conjunto {1, 2,. . . , comprimento (x)}. Os elementos correspondentes do vector são seleccionados e concatenados, naquela
ordem, no resultado. O vector de índice pode ser de qualquer comprimento e o resultado é do mesmo comprimento que o vector
de índice. Por exemplo x [6] é o sexto componente de X e
> x [01:10]
selecciona os primeiros 10 elementos de x ( assumindo comprimento (x) não é inferior a 10). Além disso
(Uma coisa reconhecidamente improvável que o faça) produz um vetor de caracteres de comprimento 16 consistindo de
3. Um vector de quantidades integrais negativos. Tal vector índice especifica os valores a ser
excluídos em vez de incluídos. portanto
4. Um vector de cadeias de caracteres. Esta possibilidade só se aplica quando um objeto tem uma nomes
atributo para identificar seus componentes. Neste caso, um sub-vector do vector nomes podem ser utilizados na mesma maneira
como as etiquetas integrais positivos no item 2 mais acima.
A vantagem é que alfanumérico nomes são muitas vezes mais fácil de lembrar do que índices numéricos. Esta opção é
particularmente útil em conexão com quadros de dados, como veremos mais tarde.
Uma expressão indexada também pode aparecer na extremidade de recebimento de uma tarefa, no caso em que é
realizada a operação de atribuição apenas nos elementos do vector. A expressão deve ser de forma vetor[ index_vector] como
tendo uma expressão arbitrária no lugar do nome do vetor não faz muito sentido aqui.
Por exemplo
• matrizes ou, mais geralmente matrizes são generalizações multi-dimensional de vectores. Na verdade, eles está vetores que podem
ser indexados por dois ou mais índices e serão impressas de formas especiais. Consulte o Capítulo 5 [matrizes e matrizes], página
18.
• fatores proporcionar meios compactos para lidar com dados categóricos. Consulte o Capítulo 4 [Fatores], página 16.
• listas são uma forma geral de vector em que os vários elementos não precisa ser do mesmo tipo, e são frequentemente eles
mesmos vectores ou listas. Listas fornecem uma maneira conveniente para retornar os resultados de um cálculo estatístico. Veja
Seção 6.1 [Listas], página 26.
• quadros de dados são estruturas de matriz semelhante, na qual as colunas podem ser de diferentes tipos. Pense em quadros de dados como
'matrizes de dados' com uma linha por unidade de observação, mas com (possivelmente)
Capítulo 2: manipulações simples; números e vectores 12
ambas as variáveis numéricas e categóricas. Muitas experiências são melhor descritos por quadros de dados: os tratamentos
são categóricos mas a resposta é numérico. Veja Seção 6.3 [Os quadros de dados], página 27.
• funções são eles próprios objetos em R que pode ser armazenado em espaço de trabalho do projeto. Isso fornece uma maneira
simples e conveniente para estender R. Consulte o Capítulo 10 [escrever suas próprias funções], página 42.
13
Vetores devem ter seus valores todos do mesmo modo. Assim qualquer dado vector deve ser inequivocamente tanto lógico,
numérico, complexo, de caráter ou cru. ( A única exceção aparente a esta regra é o “valor” especial listado como N / D para
quantidades não estão disponíveis, mas na verdade, existem vários tipos de N / D). Note-se que um vetor pode ser vazio e ainda
ter um modo. Por exemplo, o vector cadeia de caracteres vazia é listado como caracteres (0) e o vector vazio como numérico
numérico (0).
R também opera em objetos chamados listas, que são de modo Lista. Estes são ordenados seqüências de objetos que, individualmente,
podem ser de qualquer modo. listas são conhecidos como estruturas “recursiva” em vez de atômicas desde os seus próprios componentes
podem ser listas em seu próprio direito.
As outras estruturas recursivas são aqueles de modo função e expressão. Funções são os objetos que fazem parte do sistema
R juntamente com funções de usuário escrito semelhantes, que serão discutidos com algum detalhe mais tarde. Expressões como
objetos fazem parte avançada de R que não serão discutidos neste guia, exceto indiretamente quando discutimos fórmulas utilizado
com modelagem em R.
Pelo modo de um objeto que queremos dizer o tipo básico de seus constituintes fundamentais. Este é um caso especial de uma
“propriedade” de um objeto. Outra propriedade de cada objeto é a sua comprimento. As funções modo( objeto) e comprimento( objeto) pode
ser utilizado para descobrir o modo e o comprimento de qualquer estrutura definida 2.
Outras propriedades de um objecto são normalmente fornecidos por atributos( objeto), ver Secção 3.3 [Obtendo e atributos de
configuração], página 14. Devido a isso, modo e comprimento Também são chamados de “atributos intrínsecos” de um objeto.
Por exemplo, se z é um vector complexo de comprimento de 100, em seguida, em uma expressão modo (z) é a cadeia de caracteres " complexo"
e comprimento (z) é 100.
R serve para mudanças de modo quase qualquer lugar que poderia ser considerado razoável para fazê-lo, (e alguns, onde ele pode
não ser). Por exemplo, com
> z <- 0: 9
poderíamos colocar
após o qual dígitos é o vetor de caracteres c ( "0", "1", "2", ..., "9"). Uma outra coerção, ou mudança de modo, reconstrói o vector
numérica novamente:
Agora d e z são os mesmos. 3 Há uma grande coleção de funções da forma Como. alguma coisa()
para qualquer forma de coação de um modo para outro, ou para investir um objeto com algum outro atributo não pode já
possuir. O leitor deve consultar os diferentes arquivos de ajuda para se familiarizar com eles.
1 numérico modo é, na verdade, uma amálgama de dois modos distintos, a saber número inteiro e em dobro precisão, como explicado
no manual.
2 Noteno entanto que comprimento( objeto) nem sempre contêm informação útil intrínseca, por exemplo, quando objeto é
uma função.
3 Em geral, a coerção de numérico para caráter e de volta não será exatamente reversível, por causa da
marcas e uma estrutura de vector vazio de modo numérico. similarmente personagem() é um vetor de caracteres vazia, e assim por diante. Uma vez
que um objecto de qualquer tamanho foi criado, novos componentes podem ser adicionados a ele simplesmente, dando-lhe um valor de índice fora
da sua gama anterior. portanto
agora faz e um vector de comprimento 3, (os dois primeiros componentes de que são, neste ponto, tanto N / D).
Isto aplica-se a qualquer estrutura de todo, desde que o modo do componente (s) adicional está de acordo com o modo do
objecto em primeiro lugar.
Este ajustamento automático de comprimentos de um objecto é usado mais frequentemente, por exemplo, no Digitalizar ()
função de entrada. (Ver Secção 7.2 [A função de digitalização ()], página 31.)
Por outro lado truncar o tamanho de um objeto requer apenas uma atribuição para fazê-lo. portanto, se
alfa É um objecto do comprimento 10, então
faz com que seja um objecto de comprimento 5 consistindo de apenas os componentes anteriores com mesmo índice. (Os índices antigos não são
mantidos, é claro.) Podemos, então, reter apenas os primeiros três valores por
Alguns cuidados devem ser exercidos ao atribuir ou excluir atributos uma vez que são parte integrante do sistema de objeto
usado no R.
Quando é usado no lado esquerdo de uma atribuição que pode ser usado tanto para associar um novo atributo com objeto ou
para alterar um já existente. Por exemplo
Um atributo especial conhecido como o classe do objecto é usado para permitir a um estilo orientada a objectos 4 de programação
em R. Por exemplo, se um objeto tem classe " quadro de dados", ele será impresso de uma certa maneira, o enredo() função irá
exibi-lo graficamente de uma certa maneira, e outros chamados funções genéricas como resumo () vai reagir a ela como um
argumento de uma forma sensível a sua classe.
Para remover temporariamente os efeitos da classe, use a função unclass (). Por exemplo, se inverno
tem a classe " quadro de dados" então
> inverno
vai imprimi-lo na forma de estrutura de dados, que é um pouco como uma matriz, enquanto
vai imprimi-lo como uma lista comum. Apenas em situações bastante especiais que você precisa para usar esta facilidade, mas um é quando
você está aprendendo a entrar em acordo com a idéia de classe e funções genéricas.
funções genéricas e as aulas serão debatidas na secção 10.9 [orientação Object], página 48, mas apenas brevemente.
16
UMA fator é um objecto vector utilizado para especificar uma classificação discreta (agrupamento) dos componentes de outros vectores
do mesmo comprimento. R fornece tanto pedido e não ordenado fatores. Enquanto o aplicativo “real” de fatores é com fórmulas modelo
(ver Secção 11.1.1 [Contrastes], página 53), nós aqui olhar um exemplo específico.
> estado <- c ( "TAS", "sa", "qld", "NSW", "NSW", "nt", "wa", "wa",
"Qld", "vic", "NSW", "vic", "qld", "qld", "sa", "TAS", "sa", "nt", "wa", "vic", "qld ", "NSW",
"NSW", "wa", "sa", "ato", "NSW", "vic", "vic", "age")
Observe que, no caso de um vetor de caracteres, “classificado” significa classificados em ordem alfabética. UMA fator é
> statef
[1] tas sa qld NSW NSW nt wa wa qld vic NSW vic qld qld sa [16] tas sa nt wa vic qld NSW NSW wa
sa agir NSW vic Níveis vic act: ato NSW nt qld sa tas vic wa
> rendimentos <- c (60, 49, 40, 61, 64, 60, 59, 54, 62, 69, 70, 42, 56,
61, 61, 61, 58, 51, 48, 65, 49, 49, 41, 48, 52, 46,
59, 46, 58, 43)
Para o cálculo da amostra de renda para cada estado significa agora podemos usar a função especial
tapply ():
A função tapply () é usado para aplicar uma função, aqui significar(), para cada grupo de componentes do primeiro argumento,
aqui rendimentos, definido pelos níveis do segundo componente, aqui statef 2,
1 Os leitores devem notar que há oito estados e territórios da Austrália, ou seja, o Australian Capital
Território, Nova Gales do Sul, o Território do Norte, Queensland, Austrália do Sul, Tasmânia, Victoria e Austrália Ocidental.
2 Observe que tapply () também funciona neste caso, quando seu segundo argumento não é um fator, por exemplo, ' tapply (rendimento,
Estado) ', E isto é verdade para algumas outras funções, uma vez que os argumentos são coagidos a factores quando necessário (usando as.factor ()).
Capítulo 4: ordenado e não ordenadas fatores 17
como se fossem estruturas vector separado. O resultado é uma estrutura do mesmo comprimento que os níveis de atributo do
factor contendo os resultados. O leitor deve consultar o documento de ajuda para mais detalhes.
Suponha ainda que precisávamos para calcular os erros padrão das médias de renda do estado. Para fazer isso,
precisamos escrever uma função R para calcular o erro padrão para qualquer dado vetor. Desde há uma função interna var () para
calcular a variação da amostra, tal função é uma forma muito simples um forro, especificado pela atribuição:
> stderror <- função (x) sqrt (var (x) / comprimento (x))
(Funções de escrita serão considerados posteriormente no Capítulo 10 [Escrevendo suas próprias funções], página 42. Note-se que R
é uma função interna SD() é algo diferente.) Depois desta atribuição, os erros padrão são calculados por
Como um exercício que você pode cuidar de encontrar os limites de confiança de 95% usuais para as rendas médias estaduais. Para
fazer isso você poderia usar tapply () mais uma vez com o comprimento() função para encontrar os tamanhos de amostra, eo qt () funcionar
para encontrar os pontos percentuais do apropriada t-
distribuições. (Você também pode investigar as instalações do R para t- testes.)
A função tapply () também pode ser usado para lidar com a indexação mais complicada de um vetor por várias categorias.
Por exemplo, pode querer dividir os auditores fiscais tanto pelo estado e sexo. No entanto, neste caso simples (apenas um
fator) O que acontece pode ser pensado como segue. Os valores no vector são recolhidos em grupos correspondentes às
entradas distintas no fator. A função é então aplicado a cada um destes grupos individualmente. O valor é um vector de
resultados de função, marcado pela níveis atributo do fator.
A combinação de um vector e um fator de rotulagem é um exemplo do que é às vezes chamado de matriz irregular, uma vez que os
tamanhos das subclasses são possivelmente irregular. Quando os tamanhos das subclasses são todos iguais a indexação pode ser feito
implicitamente e com muito mais eficiência, como podemos ver na próxima seção.
Às vezes os níveis terá uma ordenação natural que queremos gravar e queremos que a nossa análise estatística para fazer
uso. o ordenado () cria função de factores tais ordenados mas é de outro modo idêntica à fator. Na maioria dos casos, a única
diferença entre os fatores ordenados e não ordenados é que os primeiros são impressos mostrando a ordem dos níveis, mas os
contrastes gerados por eles em modelos lineares de montagem são diferentes.
18
5 matrizes e matrizes
5.1 Arrays
Uma matriz pode ser considerada como um conjunto multiplicam subscripted de entradas de dados, para o exemplo numérico. R
permite instalações simples para a criação e manipulação de matrizes, e em particular o caso especial de matrizes.
Um vector de dimensão é um vector de inteiros não negativos. Se seu comprimento é k em seguida, a matriz é
k- tridimensional, por exemplo uma matriz é uma matriz de duas dimensões. As dimensões são indexados a partir de uma até os valores indicados
no vector de dimensão.
Um vector pode ser utilizado por R como uma matriz só se dispõe de um vector de dimensão como a sua escurecer atributo. Suponhamos, por
exemplo, z é um vector de 1500 elementos. A atribuição
dá-lhe a escurecer atributo que permite que seja tratado como uma 3 por 5 por 100 de matriz.
Outras funções, tal como matriz() e matriz () estão disponíveis para atribuições que procuram mais simples e naturais,
como veremos na Seção 5.4 [A função array ()], página 20.
Os valores do vector de dados dar os valores na matriz na mesma ordem que eles iriam ocorrer em Fortran, que é “maior
ordem da coluna”, com o primeiro subscrito mover mais rápido e mais lento o último subscrito.
Por exemplo, se o vetor de dimensão de um array, dizem uma, é c (3,4,2) em seguida, existem três × 4 ×
2 = 24 entradas em uma e o vetor de dados prende-los na ordem um [1,1,1], a [2,1,1], ..., a [2,4,2], a [3,4,2].
Os arrays podem ser unidimensional: tais matrizes são geralmente tratados da mesma maneira como vectores (incluindo durante a
impressão), mas as excepções pode causar confusão.
Mais geralmente, subsecções de uma matriz pode ser especificado, dando uma sequência de vectores de índice
no lugar de subscritos; Contudo se qualquer posição de índice é dado um vector de índice vazio, em seguida, toda a gama de índice
que é feita.
Continuando o exemplo anterior, um [2 ,,] é um 4 × 2 matriz com dimensão vetor c (4,2) e o vector de dados que contém os
valores
naquela ordem. uma[,,] significa toda a matriz, que é o mesmo que omitindo os subscritos inteiramente e usando uma sozinho.
Para qualquer matriz, dizem Z, o vector de dimensão pode ser referenciado como explicitamente dim (Z) ( em ambos os lados de uma atribuição).
Além disso, se um nome de matriz é dado com apenas um subscrito ou vector de índice, em seguida, os valores correspondentes do vector
de dados só podem ser utilizadas; neste caso, o vector dimensão é ignorada. Este não é o caso, no entanto, se o índice único não é um vetor,
mas também uma matriz, como nós próxima discutir.
Capítulo 5: Arrays e matrizes 19
Um exemplo de matriz torna o processo transparente. No caso de uma matriz duplamente indexado, uma matriz de índice pode ser
determinado que consiste em duas colunas e tantas linhas quanto desejado. As entradas na matriz de índice são os índices de linha e
coluna para a matriz duplamente indexado. Suponha por exemplo que tem um 4 5 por matriz X e queremos fazer o seguinte:
[, 1] [, 2] [1,]
1 3
[2], 2 2
[3], 3 1
> XI] # Extrair os elementos
[1] 9 6 3
> x [i] <- 0 # Substituir esses elementos por zeros.
>x
[, 1] [, 2] [, 3] [, 4] [, 5] [1,]
1 5 0 13 17
[2], 2 0 10 14 18
[3], 0 7 11 15 19
[4,] 4 8 12 16 20
>
índices negativos não são permitidos em matrizes de índice. N / D e os valores de zero são permitidos: linhas na matriz índice contendo
um zero são ignorados, e linhas contendo uma N / D produzir um N / D no resultado.
Como um exemplo menos trivial, suponha que desejamos gerar uma matriz de projeto (não reduzido) para um projeto de bloco
definido por fatores blocos (b níveis) e variedades (v níveis). Suponha ainda existem n parcelas no experimento. Poderíamos proceder
da seguinte forma:
No entanto, uma forma direta mais simples de produzir essa matriz é usar mesa():
matrizes de índice devem ser numérica: qualquer outra forma de matriz (por exemplo, uma matriz lógica ou carácter) fornecido como uma
matriz é tratado como um vector de indexação.
usaria h para definir-se por 3 4 por 2 de matriz na Z. Se o tamanho da h é exatamente 24 o resultado é o mesmo que
No entanto, se h é menor do que 24, os seus valores são reciclados desde o início novamente para torná-lo até o tamanho 24 (ver
Secção 5.4.1 [A regra de reciclagem], página 20), mas dim (h) <- c (3,4,2) seria um sinal de um erro sobre o comprimento descasamento.
Como um exemplo extremo, mas comum
Neste ponto dim (Z) representa o vetor dimensão c (3,4,2), e Z [01:24] representa o vetor de dados como era no h, e Z [] com
um índice vazio ou Z sem subscrito representa toda a matriz como uma matriz.
As matrizes podem ser usadas em expressões aritméticas e o resultado é uma matriz formada por operações elementby de elementos no
vector de dados. o escurecer atributos de operandos geralmente precisa de ser a mesma, e este transforma-se o vector de dimensão do
resultado. Então se A, B e C são todas as matrizes semelhantes, então
> D <- 2 * A * B + C + 1
marcas D uma matriz semelhante com o seu vector de dados sendo o resultado das operações de elemento-a-elemento de dados.
No entanto, a regra precisas sobre Array e Vector cálculos mistos tem de ser considerado um pouco mais de cuidado.
• Quaisquer operandos vetor curtas são estendidos através da reciclagem de seus valores até que corresponder ao tamanho de quaisquer outros operandos.
• Como vectores longas como curtas e matrizes só são encontradas, as matrizes devem ter todos a mesma
escurecer atributo ou um erro.
• Qualquer vector operando mais tempo do que um operando matriz ou matriz gera um erro.
• Se estruturas de matriz estão presentes e nenhum erro ou coacção de vector foi precipitado, o resultado é uma estrutura de
matriz com o comum escurecer atributo dos seus operandos de matriz.
Capítulo 5: Arrays e matrizes 21
Uma alternativa é
A função de multiplicação pode ser substituída por uma função arbitrária de duas variáveis. Por exemplo, se quiséssemos
avaliar a função f (x; y) = cos ( y) / ( 1 + X 2) sobre uma grade regular de valores com X- e y- coordenadas definido pelos vectores R X e y
respectivamente, podemos proceder da seguinte forma:
Em particular, o produto externo de dois vectores comuns é uma matriz duplamente subscrito (isto é uma matriz, de
classificação, no máximo, 1). Note-se que o operador do produto exterior é, naturalmente, não comutativa. Definindo suas
próprias funções R será considerado no Capítulo 10 [Escrevendo suas próprias funções], página 42.
Uma maneira elegante de fazer isso utiliza o exterior() funcionar duas vezes:
Notar que enredo() aqui usa um histograma como método de parcelas, porque ele “vê” que fr é da classe " mesa". A maneira
“óbvia” de fazer este problema com para loops, a ser discutido no Capítulo 9 [Loops e execução condicional], página 40, é tão
ineficaz como para ser impraticável.
dado por
é apenas a transposta de UMA. Para este caso especial de uma função simples t () está disponível, para que pudéssemos ter usado B <- t (A).
Capítulo 5: Arrays e matrizes 22
Se, por exemplo, UMA e B são matrizes quadradas de mesmo tamanho, em seguida,
> A*B
> A% *% B
> x% *% A% *% X
A função crossprod () Formulários “crossproducts”, significando que crossprod (X, Y) é o mesmo que t (X)% *% y mas a
operação é mais eficiente. Se o segundo argumento para crossprod ()
é omitido ele é levado para ser o mesmo que o primeiro.
O significado de diag () depende de seu argumento. diag (v), Onde v é um vector, dá uma matriz diagonal com os elementos
do vector, como os elementos da diagonal. Por outro lado diag (M),
Onde M é uma matriz, dá o vector de entradas da diagonal principal de M. Esta é a mesma convenção de que o utilizado para diag () em
Matlab. Além disso, um pouco confusa, se k é um único valor numérico então diag (k) é o k por k matriz de identidade!
> b <- A% *% x
resolve o sistema, retornando x ( até alguma perda de precisão). Note-se que em álgebra linear, formalmente
x = A - 1 b Onde UMA - 1 denota a inverso do UMA, que pode ser calculado por
resolver (A)
mas raramente é necessário. Numericamente, é tanto ineficiente e potencialmente instável para computar x <- resolver (A)% *% b ao
invés de resolver (A, b).
A forma quadrática X T UMA - 1 X que é usado em cálculos multivariadas, deve ser calculado por algo como 2 x% *% resolver (A,
x), em vez de calcular o inverso de UMA.
1 Observe que x% *% X é ambígua, como poderia significar tanto X T X ou xx T, Onde X é a forma de coluna. em tais
casos a matriz menor parece implicitamente ser a interpretação, por isso a escalar X T X é neste caso o resultado. O Matrix xx T pode ser calculada pela cbind
(x)%% * X ou x% *% rbind (x) uma vez que o resultado de
rbind () ou cbind () é sempre uma matriz. No entanto, a melhor maneira de calcular X T X ou xx T é crossprod (x) ou x% O% x respectivamente.
2 Ainda melhor seria para formar uma raiz quadrada matriz B com A = BB T e encontrar o comprimento quadrado do
irá atribuir essa lista para ev. Então ev $ val é o vector dos valores próprios de Sm e ev $ vec é a matriz de vectores prprios
correspondentes. Se tivéssemos só precisava de valores próprios poderíamos ter usado o serviço:
> evals <- eigen (SM) $ valores evals agora contém o vector de valores próprios e o segundo componente é
descartado. Se a expressão
é usado por si só como um comando os dois componentes são impressas, com seus nomes. Para grandes matrizes é melhor
evitar computar os vectores próprios, se eles não são necessários, utilizando a expressão
calcula o valor absoluto do determinante de M. Se este cálculo foram necessárias muitas vezes com uma variedade de matrizes
pode ser definida como uma função R
após o qual nós poderíamos usar absdet () como apenas uma outra função R. Como um exemplo mais trivial, mas potencialmente útil,
você pode querer considerar escrever uma função, digamos tr (), para calcular o rastreio de uma matriz quadrada. [Dica: Você não precisa
usar um loop explícita. Olhe novamente para a diag ()
função.]
R tem uma função interna det para calcular um determinante, incluindo o sinal, e outro,
determinante, para se obter o sinal de módulo e (opcionalmente em escala logarítmica),
dá os resultados de mínimos quadrados caber onde y é o vector de observações e X é a matriz de design. Consulte o recurso de ajuda
para obter mais detalhes, e também para a função de acompanhamento ls.diag () para, entre outras coisas, diagnósticos de regressão.
Note-se que um grande significa termo é incluído automaticamente e não precisa ser incluída explicitamente como uma coluna de X. Além
disso, note que você quase sempre vai preferir usar lm (.) ( ver Secção 11.2 [modelos lineares], página 54) para lsfit () para a modelagem
de regressão.
Estes calcular a projecção ortogonal de y na gama de X em em forma, a projecção para o complemento ortogonal em res e o
vector de coeficiente para a projecção em b, isso é, b é essencialmente o resultado da Matlab operador 'barra invertida'.
Não é assumido que X tem posto coluna total. Despedimentos vão ser descoberto e removido como eles são encontrados.
Esta alternativa é a maneira mais antiga, de baixo nível para realizar cálculos de mínimos quadrados. Apesar de ainda ser útil em alguns
contextos, seria agora geralmente ser substituídos pelos modelos recursos estatísticos, como será discutido no Capítulo 11 [Os modelos
estatísticos em R], página 51.
Na atribuição
os argumentos para cbind () deve ser ou vectores de qualquer comprimento, ou matrizes com a mesma dimensão da coluna, que
é o mesmo número de linhas. O resultado é uma matriz com os argumentos concatenados arg 1, 2 arg, . . . formando as colunas.
Se alguns dos argumentos para cbind () são vectores que podem ser mais curtos do que o tamanho da coluna de quaisquer matrizes presentes,
caso em que eles são ciclicamente estendido para coincidir com o tamanho da coluna de matriz (ou o comprimento do vector mais longo, se não há
matrizes são dadas).
A função rbind () faz a operação correspondente para linhas. Neste caso, qualquer argumento vetor, possivelmente ciclicamente
estendida, são naturalmente tomadas como vetores de linha.
supor X1 e X2 têm o mesmo número de linhas. Para combinar estes por colunas em uma matriz X, em conjunto com uma
coluna inicial de 1 s podemos usar
O resultado de rbind () ou cbind () sempre tem o estatuto de matriz. Conseqüentemente cbind (x) e rbind (x)
são, possivelmente, as maneiras mais simples explicitamente para permitir que o vector X a ser tratado como uma coluna ou matriz fileira, respectivamente.
A forma oficial de coagir uma série de volta a um objeto de vetor simples é usar as.vector ()
No entanto, um resultado semelhante pode ser conseguido através da utilização c () com apenas um argumento, simplesmente para este efeito colateral:
Existem ligeiras diferenças entre os dois, mas, essencialmente, a escolha entre eles é em grande parte uma questão de
estilo (com o primeiro sendo preferível).
Capítulo 5: Arrays e matrizes 25
Suponhamos, por exemplo, que statef é um factor que dá o código de estado para cada entrada em um vetor de dados. A atribuição
cede statefr uma tabela de frequências de cada estado na amostra. As frequências são ordenados e rotulado pela níveis atributo
do fator. Este caso simples é equivalente a, mas mais conveniente do que,
Suponha ainda que incomef é um factor que dá uma “classe de renda” adequadamente definido para cada entrada no vector de
dados, por exemplo, com a cortar() função:
6.1 Listas
uma R Lista é um objecto constituído por uma colecção de objectos ordenados conhecida como o seu componentes.
Não há necessidade particular para os componentes a ser do mesmo modo ou do tipo, e, por exemplo, uma lista poderia consistir de
um vector numérico, um valor lógico, uma matriz, um vector complexo, uma matriz de caracteres, uma função de, e em breve. Aqui está
um exemplo simples de como fazer uma lista:
Os componentes são sempre numerada e pode ser sempre referido como tal. assim, se Lst é o nome de uma lista com
quatro componentes, estes podem ser referidos individualmente como Lst [[1]], lst [[2]], Lst [[3]] e Lst [[4]]. Se, além disso, Lst [[4]]
é uma matriz de vetor subscripted então
Lst [[4]] [1] é a sua primeira entrada.
E se Lst é uma lista, em seguida, a função comprimento (LST) dá o número de componentes (nível superior) que tem.
Componentes de listas também podem ser nomeado, e neste caso, o componente pode ser referido quer dando o nome do
componente como uma cadeia de caracteres no lugar do número em colchetes, ou, mais convenientemente, dando uma
expressão da forma
Esta é uma convenção muito útil, pois torna mais fácil para obter o componente certo se você esquecer o número.
Além disso, também se pode usar os nomes dos componentes da lista em colchetes,
isto é, Lst [[ "nome"]] é o mesmo que $ Name Lst. Isto é especialmente útil, quando o nome do componente a ser extraído é
armazenado numa outra variável como em
É muito importante fazer a distinção Lst [[1]] de Lst [1]. '[[...]]' é o operador usado para selecionar um único elemento, ao
passo que '[...]' é um operador geral subscripting. Assim, o primeiro é a primeiro objeto na lista Lst, e se é uma lista com o nome
o nome é não incluído. O último é um sublista da lista Lst que consiste de apenas a primeira entrada. Se for uma lista com o
nome, os nomes são transferidos para o sub-lista.
Os nomes dos componentes pode ser abreviado para baixo para o número mínimo de cartas necessários para identificá-los de forma
exclusiva. portanto Lst $ coeficientes pode ser especificada como minimamente Lst $ coe e
Lst $ covariância Como Lst $ cov.
O vector de nomes é de fato simplesmente um atributo da lista como qualquer outro e pode ser tratada como tal. Outras estruturas
além de listas podem, naturalmente, ser igualmente dada uma nomes atributo também.
Capítulo 6: Listas e quadros de dados 27
estabelece uma lista Lst do m componentes usando objeto 1, . . . , Objeto m para os componentes e dando-lhes nomes como especificado
pelos nomes de argumentos, (que podem ser livremente escolhidos). Se esses nomes são omitidos, os componentes só são contados.
Os componentes utilizados para formar a lista está
copiado ao formar a nova lista e os originais não são afetados.
Listas, como qualquer objecto com subscritos, pode ser prolongado através da especificação de componentes adicionais. Por exemplo
Recorde-se que com objectos vetor como argumentos da função concatenação semelhante unidas entre si todos os argumentos
em uma única estrutura de vector. Neste caso todos os outros atributos, tais como
escurecer atributos, são descartados.
UMA quadro de dados é uma lista com classe " quadro de dados". Há restrições em listas que podem ser feitas em quadros de dados, ou seja,
• Os componentes devem ser vetores (numérico, personagem ou lógicos), fatores, matrizes numéricos, listas ou outros quadros de
dados.
• Matrizes, listas e quadros de dados fornecer tantas variáveis para o novo quadro de dados como eles têm colunas, elementos
ou variáveis, respectivamente.
• vetores numéricos, logicals e fatores são incluídos como é, e por padrão 1 vetores de caracteres são coagidos a ser
fatores, cujos níveis são os valores únicos que aparecem no vector.
• estruturas vetor aparecendo como variáveis do quadro de dados devem ter todos o Mesmo comprimento,
e estruturas matriciais devem ter todos a mesma tamanho da linha.
Um quadro de dados de Maio para muitas finalidades ser considerado como uma matriz com colunas, possivelmente, de diferentes
modos e atributos. Pode ser apresentada em forma de matriz, e as suas linhas e colunas extraído utilizando as convenções de indexação
matriz.
> contadores <- data.frame (home = statef, pilhagem = rendimentos, tiro = incomef)
Uma lista cujos componentes estão em conformidade com as restrições de um quadro de dados pode ser coagidos num quadro de dados
utilizando a função as.data.frame ()
A maneira mais simples para construir um quadro de dados a partir do zero é usar o read.table () funcionar para ler um quadro
de dados inteiro de um arquivo externo. Isso é discutido no Capítulo 7 [Lendo dados de arquivos], página 30.
o anexar() função tem um 'banco de dados', como uma lista ou quadro de dados como seu argumento. assim supõem lentilhas é uma
trama de dados com três variáveis lentilhas $ u, lentilhas $ v, lentilhas $ w. a anexar
coloca o quadro de dados no caminho de procura na posição 2, e desde que não haja variáveis u, v
ou W na posição 1, u, v e W estão disponíveis como variáveis do quadro de dados em seu próprio direito. Neste ponto uma
atribuição como
> u <- v + w
não substitui o componente você do quadro de dados, mas sim mascara com outra variável
você no diretório de trabalho na posição 1 no caminho de procura. Para fazer uma mudança permanente para o próprio quadro de dados,
a maneira mais simples é recorrer mais uma vez ao $ notação:
No entanto, o novo valor do componente você não é visível até que a trama de dados é destacada e ligada de novo.
> separar ()
Mais precisamente, esta declaração destaca do caminho de pesquisa da entidade atualmente na posição 2. Assim, no
presente contexto, as variáveis u, v e W haveria mais visível, exceto sob a notação lista como lentilhas $ u e assim por diante.
Entidades em posições superiores a 2 sobre o caminho de procura pode ser destacado, dando o seu número para destacar, mas
é muito mais seguro usar sempre um nome, por exemplo, separar (lentilhas) ou destacar ( "lentilhas")
Nota: Nas listas R e quadros de dados só pode ser ligado à posição 2 ou superior, e que está ligado representa
um cópia de do objeto original. Você pode alterar os valores ligados
através da atribuir, mas a lista ou dados do quadro original está inalterado.
• quando se trabalha com um problema de fixar a estrutura de dados apropriada na posição 2, e utilizar a pasta de trabalho no
nível 1 para quantidades operacionais e variáveis temporárias;
• antes de deixar um problema, adicione quaisquer variáveis que você deseja manter para o futuro referência ao quadro de dados usando o
$ forma de atribuição, e, em seguida, separar ();
• finalmente remover todas as variáveis indesejáveis do diretório de trabalho e mantê-lo o mais limpo de sobras de variáveis
temporárias quanto possível.
Desta forma, é bastante simples de trabalhar com muitos problemas no mesmo diretório, todos os que têm variáveis nomeadas
x, y e z, por exemplo.
Tudo o que foi ligado pode ser retirado por destacar, pelo número da posição ou, de preferência, por nome.
A função procurar mostra o caminho de pesquisa atual e assim é uma maneira muito útil para manter o controle de quais quadros
de dados e listas (e pacotes) foram anexados e imparcial. Inicialmente, ele dá
> procurar()
[1] ".GlobalEnv" "autoloads" "Pacote: base"
> procurar()
[1] ".GlobalEnv" "lentilhas" "autoloads" "Pacote: base"
> LS (2)
[1] "u" de "v" "w"
e como vemos ls ( ou objetos) pode ser usado para examinar o conteúdo de qualquer posição no caminho de pesquisa.
Finalmente, destacamos o quadro de dados e confirme que tenha sido removido do caminho de pesquisa.
Se variáveis estão a ser realizada principalmente em quadros de dados, como sugerem fortemente que deveria ser, um quadro de dados
inteiro pode ser lido diretamente com o read.table () função. Existe também uma função de entrada mais primitiva, Digitalizar (), que pode ser
chamado diretamente.
Para mais detalhes sobre como importar dados para R e também exportar dados, consulte o R Dados de importação / exportação manual.
• A primeira linha do arquivo deve ter um nome para cada variável na estrutura de dados.
• Cada linha adicional do arquivo tem como primeiro item a rótulo de linha e os valores para cada variável.
Se o arquivo tem um a menos item na sua primeira linha do que em seu segundo, este arranjo é presumido estar em vigor. Assim, as primeiras
linhas de um arquivo a ser lido como um quadro de dados pode parecer como se segue.
Por itens numéricos padrão (exceto rótulos de linha) são lidos como variáveis numéricas e variáveis não-numéricos, como Cent.heat
no exemplo, como factores. Isto pode ser alterado, se necessário.
A função read.table () pode então ser usado para ler o quadro de dados directamente
Se o segundo argumento é um valor único e não uma lista, um único vector é lido, todos os componentes que devem ser do
mesmo modo que o valor fictício.
> X <- matriz (varredura ( "light.dat", 0), ncol = 5, byrow = TRUE)
Há mais elaboradas instalações de entrada disponíveis e estes são detalhados nos manuais.
Cerca de 100 conjuntos de dados são fornecidos com R (em pacote conjuntos de dados), e outros estão disponíveis em pacotes (incluindo os
pacotes recomendados fornecidos com R). Para ver a lista de conjuntos de dados de uso atualmente disponível
dados()
Todos os conjuntos de dados fornecidos com R estão disponíveis diretamente pelo nome. No entanto, muitos pacotes ainda usam a convenção obsoleto
em que dados foi também utilizada para carregar os conjuntos de dados em R, por exemplo
dados (infert)
e este ainda pode ser utilizado com as embalagens convencionais (como neste exemplo). Na maioria dos casos, isso vai carregar um objeto R
com o mesmo nome. No entanto, em alguns casos ele carrega vários objetos, por isso consulte a ajuda on-line para o objeto para ver o que
esperar.
Se um pacote foi anexado por biblioteca, seus conjuntos de dados são automaticamente incluídos na pesquisa.
pacotes contribuídas por usuários pode ser uma rica fonte de conjuntos de dados.
Capítulo 7: leitura de dados de arquivos 32
permitirá que você editar o seu conjunto de dados xold, e após a conclusão do objeto alterado é atribuído a xnovo. Se você quiser alterar o
conjunto de dados originais xold, a maneira mais simples é usar corrigir (xold),
o qual é equivalente a xold <- edição (xold).
Usar
8 As distribuições de probabilidade
Um uso conveniente de R é fornecer um conjunto abrangente de quadros estatísticos. Funções são fornecidas para avaliar a
função de distribuição cumulativa P (X ≤ x), a função de densidade de probabilidade e a função quantil (dado q, o mais pequeno X
de tal modo que P (X ≤ x) > Q), e para simular a partir da distribuição.
Prefixar o nome dado aqui por ' d 'Para a densidade,' p 'Para o CDF,' q 'Para a função quantil e' r 'Para simulação ( r Andom desvia).
O primeiro argumento é X para d xxx, q para p xxx, p para
q xxx e n para r xxx ( exceto por rhyper, rsignrank e rwilcox, para o qual é nn). Em não completamente todos os casos é o parâmetro de não
centralidade PCN atualmente disponíveis: consulte a ajuda on-line para mais detalhes.
Além disso, existem funções ptukey e qtukey para a distribuição da gama de studentized de amostras a partir de uma
distribuição normal, e dmultinom e rmultinom para a distribuição multinomial. Outras distribuições estão disponíveis em pacotes
contribuíram, nomeadamente SuppDists
( https://CRAN.R-project.org/package=SuppDists).
16 | 070355555588
18 | 000022233333335577777777888822335777888 20 |
00002223378800035778 22 | 0002335578023578 24 | 00228 26 | 23
28 | 080 30 | 7 32 | 2337 34 | 250077 36 | 0000823577 38 |
2333335582225577
40 | 0000003357788888002233555577778 42 |
03335555778800233333555577778 44 |
02222335557780000000023333357778888 46 |
0000233357700000023578 48 | 00000022335800333 50 | 0370
Uma trama caule e folhas é como um histograma, e R tem uma função hist para traçar histogramas.
plotagens de densidade mais elegantes podem ser feitas por densidade, e adicionou-se uma linha produzido pelos
densidade neste exemplo. a largura de banda bw foi escolhido por tentativa e erro como padrão dá
Capítulo 8: As distribuições de probabilidade 35
muito suavização (que normalmente faz para densidades “interessantes”). (Métodos melhor automatizados de escolha largura de banda
estão disponíveis, e neste exemplo bw = "SJ" dá um bom resultado.)
Histograma de erupções
0.7
0.6
0.5
0.4
Relative Frequency
0.3
0.2
0.1
0.0
erupções
Esta distribuição é, obviamente, longe de qualquer distribuição padrão. Como sobre o modo do lado direito, dizem erupções de
mais de 3 minutos? Vamos atender a uma distribuição normal e sobrepor o CDF equipada.
ecdf (longo)
1.0
0.8
0.6
Fn(x)
0.4
0.2
0.0
que mostra um ajuste razoável, mas a cauda direita mais curto do que seria de esperar de uma distribuição normal. Vamos
comparar isso com alguns dados simulados de um t distribuição
4.0
3.5
3.0
-2 -1 0 1 2
Quantis teóricas
que será normalmente (se é uma amostra aleatória) mostram caudas mais longas do que o esperado para um normal. Nós podemos fazer uma
trama QQ contra a distribuição de geração de
qqplot (qt (ppoints (250), df = 5), x, XLAB = "trama QQ para dsn t") qqline (x)
Finalmente, podemos querer um teste mais formal de acordo com normalidade (ou não). R fornece o teste de Shapiro-Wilk
dados: long
W = 0,9793, p = 0,01052
e o teste de Kolmogorov-Smirnov
> ks.test (longo, "pnorm", média = média (comprimento), dp = sqrt (var (de comprimento)))
dados: long
D = 0,0661, p-valor = 0,4284 hipótese alternativa:
two.sided
(Note-se que a teoria da distribuição não é válido aqui como nós estimaram os parâmetros da distribuição normal da mesma
amostra.)
Considere os seguintes conjuntos de dados sobre o calor latente de fusão do gelo ( cal / g) de Arroz (1995, p.490)
Capítulo 8: As distribuições de probabilidade 37
A <- digitalização ()
B <- digitalização ()
boxplot (A, B)
o que indica que o primeiro grupo tende a dar resultados mais elevados do que o segundo.
80.04
80.02
80.00
79.98
79.96
79.94
1 2
Para testar a igualdade das médias dos dois exemplos, podemos usar uma desirmanado t- teste
> t.test (A, B)
Dados: A e B
t = 3,2499, df = 12,027, p = 0,00694
hipótese alternativa: a verdadeira diferença entre as médias não é igual ao intervalo de confiança de 0 95
por cento:
0.01385526 0,07018320
estimativas de amostra: média de x
média de y
80,02077 79,97875
que não indicam uma diferença significativa, assumindo normalidade. Por padrão, a função de R não assume igualdade de
variâncias nas duas amostras (em contraste com o semelhante S-Plus t.test
função). Podemos usar o teste de F para testar a igualdade das variações, desde que as duas amostras são de populações
normais.
> var.test (A, B)
Dados: A e B
F = 0,5837, df = 12 Nm, denom df = 7, p-valor = 0,3938 hipótese alternativa: verdadeira razão de
variâncias não é igual a um intervalo de confiança de 95 por cento:
0.1251097 2,1052687
estimativas de amostra: razão
de variâncias
0.5837405
que mostra nenhuma evidência de uma diferença significativa, e por isso podemos usar o clássico t- teste que assume a igualdade de
variâncias.
Dados: A e B
t = 3,4722, df = 19, p = 0,002551
hipótese alternativa: a verdadeira diferença entre as médias não é igual ao intervalo de confiança de 0 95
por cento:
0.01669058 0,06734788
estimativas de amostra: média de x
média de y
80,02077 79,97875
Todos estes testes assumir normalidade das duas amostras. O Wilcoxon (Mann-Whitney ou) de teste de duas amostras
única assume uma distribuição contínua comum sob a hipótese nula.
Dados: A e B
W = 89, valor de p = 0,007497
hipótese alternativa: a verdadeira mudança de localização não é igual a 0
Mensagem de aviso:
não pode computar p-valor exato com laços em: wilcox.test (A, B)
Observar o aviso: existem vários laços em cada uma das amostras, o que sugere fortemente que estes dados são de uma distribuição discreta
(provavelmente devido ao arredondamento).
Existem várias maneiras de comparar graficamente as duas amostras. Nós já vimos um par de boxplots. Os seguintes
> trama (ecdf (A), do.points = FALSO, verticais = VERDADEIRO, xlim = intervalo (A, B))
> plot (ecdf (B), do.points = false, verticais = TRUE, adicione = TRUE)
irá mostrar os dois CDFs empíricos, e qqplot vai realizar uma trama QQ das duas amostras. O teste de Kolmogorov-Smirnov é
da distância vertical máxima entre as duas ecdf de, assumindo uma distribuição contínua comum:
Dados: A e B
D = 0,5962, p = 0,05919 hipótese alternativa: duas
faces
39
Mensagem de aviso:
não é possível calcular os valores de p correcção com laços em: ks.test (A, B)
40
Os comandos podem ser agrupados em chaves, { expr_1; ...; expr_m}, caso em que o valor do grupo é o resultado da última
expressão no grupo avaliado. Uma vez que um tal grupo é também uma expressão pode ser, por exemplo, ser ele próprio
incluído nos parênteses e usado como parte de uma expressão ainda maior, e assim por diante.
Onde expr 1 deve ser avaliada como um valor lógico único eo resultado de toda a expressão é então evidente.
Os “curto-circuito” operadores && e || são muitas vezes utilizados como parte da patologia em um E se
declaração. Considerando & e | aplicar elemento a elemento a vectores, && e || aplicam-se a vetores de tamanho um, e somente avaliar o
seu segundo argumento, se necessário.
Há uma versão vectorized do if / else construir, o ifelse função. Este tem a forma ifelse (condição, a, b) e retorna um vector
do mesmo comprimento que condição, com elementos um [i] E se condição [i] É verdade, caso contrário, b [i] ( Onde uma e b são
reciclados como necessário).
Onde nome é a variável de contagem. expr 1 é um vector de expressão, (muitas vezes uma sequência semelhante 01:20), e
expr 2 é muitas vezes uma expressão agrupada com suas sub-expressões escritas em termos do manequim
nome. expr 2 é repetidamente avaliada quanto nome varia através dos valores no vector de resultado
expr 1.
Como exemplo, suponha ind é um vetor de indicadores de classe e queremos produzir lotes separados de y versus X dentro
de classes. Uma possibilidade é usar coplot (), 1 qual irá produzir uma disposição de tramas correspondentes a cada nível do
factor. Outra maneira de fazer isso, agora a colocar todas as parcelas por um visor, é a seguinte:
(Note-se a função Dividido() que produz uma lista de vectores obtidos ao dividir um vector acima de acordo com as classes
especificadas por um factor. Esta é uma função útil, principalmente usado em ligação com boxplots. Veja o Socorro instalação
para mais detalhes.)
Aviso: para() loops são usado no código R muito menos frequentemente do que em linguagens compiladas. Código que tem
uma visão 'objeto inteiro' é susceptível de ser tanto mais clara e mais rápido em R. Outras instalações looping incluir o
declaração eo
declaração.
o pausa declaração pode ser usado para encerrar qualquer loop, possivelmente de forma anormal. Esta é a única maneira de encerrar repetir
rotações.
o Próximo declaração pode ser usado para interromper um ciclo particular e pular para o “próximo”. instruções de controle são
mais frequentemente utilizados em conexão com funções que são discutidos no Capítulo 10 [escrever suas próprias funções],
página 42, e onde mais exemplos surgirão.
42
Como vimos informalmente ao longo do caminho, a linguagem R permite ao usuário criar objetos de modo função. Estes são
verdadeiros funções R que são armazenados numa forma interna especial e podem ser utilizados em outras expressões, e assim por
diante. No processo, os ganhos de linguagem enormemente no poder, conveniência e elegância, e aprender a escrever funções
úteis é uma das principais maneiras de tornar seu uso de R confortável e produtiva.
Deve-se ressaltar que a maioria das funções fornecidos como parte do sistema R, tais como significar(), var (), pós-escrito () e
assim por diante, são eles próprios escritos em R e, portanto, não diferem materialmente das funções do usuário escrito.
o expressão é uma expressão de R, (geralmente uma expressão agrupados), que utiliza os argumentos,
arg i, para calcular um valor. O valor da expressão é o valor retornado para a função.
A chamada para a função, em seguida, normalmente assume a forma nome (expr_1, expr_2, ...) e pode ocorrer em qualquer lugar uma
chamada de função é legítimo.
Com esta função definida, você poderia executar duas amostras t- testes utilizando uma chamada tal como
Como um segundo exemplo, considere uma função para emular o directamente Matlab comando de barra invertida, o que
devolve os coeficientes da projecção ortogonal do vector y para o espaço de coluna da matriz, X. ( Isto é normalmente chamado de
mínimos quadrados estimativa dos coeficientes de regressão.) Este seria normalmente ser feito com o qr () função; no entanto, isso
às vezes é um pouco complicado de usar diretamente e que paga para ter uma função simples como o seguinte para usá-lo com
segurança.
A função R clássica lsfit () faz este trabalho muito bem, e muito mais 1. Ele, por sua vez utiliza as funções qr () e qr.coef () na
maneira um pouco contra-intuitivo acima para fazer esta parte do cálculo. Portanto, há provavelmente algum valor em ter apenas
esta parte isolada em um simples usar a função se ele vai estar em uso frequente. Se assim for, nós podemos desejar para
torná-lo um operador binário matriz para uso ainda mais conveniente.
% qualquer coisa%
que poderia ter sido usado como um operador binário em expressões em vez de na forma de funções. Suponha, por exemplo, nós
escolhemos! para o caráter interno. A definição de função, então, começar como
(Observe o uso de aspas.) A função poderia, então, ser usado como X%!% Y. ( O próprio símbolo de barra invertida não é uma
escolha conveniente, pois apresenta problemas especiais neste contexto.)
O operador multiplicação de matrizes,% *%, e o operador de matriz produto externo% o% são outros exemplos de
operadores binários definidos desta forma.
Em muitos casos, os argumentos podem ser dadas valores padrão comumente apropriadas, caso em que eles podem ser omitidos
por completo da chamada quando os padrões são adequados. Por exemplo, se fun1 foram definidos como
> fun1 <- função (dados, data.frame, gráfico = TRUE, limite = 20) {...}
É importante notar que os padrões podem ser expressões arbitrárias, mesmo envolvendo outros argumentos para a mesma
função; eles não estão restritos a ser constantes como em nosso exemplo simples aqui.
fun1 <- função (dados, data.frame, gráfico = TRUE, limite = 20, ...) {
[declarações omitido]
se (gráfico)
par (PCH = "*", ...)
[mais omissões]
}
Menos frequentemente, uma função será necessário referir-se a componentes de '...'. A expressão
Lista(...) avalia todos esses argumentos e retorna-los em uma lista com o nome, enquanto .. 1, ..2,
etc. avaliá-los um de cada vez, com' .. n 'Devolver o argumento inigualável n'th.
Para compreender completamente as regras que regem o escopo de R atribuições o leitor precisa estar familiarizado com a
noção de uma avaliação quadro, Armação. Este é um pouco avançada, embora dificilmente difícil, tópico e não é coberto ainda
mais aqui.
Se as atribuições globais e permanentes são destinados dentro de uma função, então ou o operador “superassignment”, << - ou
a função atribuir() pode ser usado. Veja o Socorro documento para obter detalhes. S-Plus os usuários devem estar cientes de que
<< - tem semânticas diferentes em R. Estes são debatidas na secção 10.7 [Scope], página 46.
Um projeto de bloco é definida por dois fatores, dizem blocos (b níveis) e variedades (v níveis). E se R
e K são as v por v e b por b repetições e tamanho do bloco matrizes, respectivamente, e N é o
b por v matriz de incidência, então os factores de eficiência são definidos como os valores próprios da matriz
É numericamente pouco melhor para trabalhar com a decomposição em valores singulares nesta ocasião, em vez das rotinas de
valores próprios.
O resultado da função é uma lista dando não só os factores de eficiência como o primeiro componente, mas também o
bloco e variedade contrastes canônicos, já que às vezes estes dão informação qualitativa adicional útil.
Isto pode ser muito mais convenientemente feito usando uma função, no.dimnames (), mostrado abaixo, como uma “envolvente” para
alcançar o mesmo resultado. Ele também ilustra como algumas funções de usuário eficazes e úteis podem ser bastante curto.
Com esta função definida, uma matriz pode ser impresso em formato perto usando
fun1 <- função (f, a, b, fa, fb, a0, eps, lim, divertido) {
# # função 'fun1' só é visível 'área' dentro
d <- (a + b) / 2 h <- (b -
a) / 4 FD <- f (d)
10,7 Âmbito
A discussão nesta seção é um pouco mais técnico do que em outras partes deste documento. No entanto, ele detalha uma das
principais diferenças entre S-Plus e R.
Os símbolos que ocorrem no corpo de uma função pode ser divididos em três classes; parâmetros formais, variáveis locais
e variáveis livres. Os parâmetros formais de uma função são aqueles que ocorrem na lista de argumentos da função. Os seus
valores são determinados pelo processo de
obrigatório os argumentos da função reais para os parâmetros formais. As variáveis locais são aqueles cujos valores são
determinados pela avaliação de expressões no corpo das funções. Variáveis que não são parâmetros formais ou variáveis
locais são chamados de variáveis livres. variáveis livres tornam-se variáveis locais se forem atribuídos. Considere a seguinte
definição de função.
impressão (x) de
impressão (y) de
impressão (z)}
Nesta função, X é um parâmetro formal, y é uma variável local e z é uma variável livre. Em R as ligações variáveis livres são
resolvidos pela primeira olhando no ambiente em que a função foi criada. Isso é chamado âmbito lexical. Primeiro vamos definir
uma função chamada cubo.
a variável n na função sq não é um argumento para essa função. Por isso, é uma variável livre e as regras de escopo deve
ser usada para determinar o valor que deve ser associado a ele. Sob escopo estático ( S-Plus) o valor é o que se relaciona com
uma variável global chamada n.
Sob escopo léxico (R) é o parâmetro para a função cubo uma vez que é a ligação activa para a variável n no momento em que
a função sq foi definido. A diferença entre a avaliação em R e avaliação in S-Plus é aquele S-Plus procura uma variável global
chamada n enquanto R primeiro procura por uma variável chamada n no ambiente criado quando cubo foi invocado.
Capítulo 10: Escrevendo suas próprias funções 47
# # primeira avaliação em S
S> cubo (2)
Erro em quadrados (): objecto de "n" não encontrado
jogado S> n <- 3 S> cubo (2) [1] 18
O operador de atribuição especial, << -, é usado para alterar o valor associado total.
Este operador olha para trás em ambientes que encerram para um ambiente que contém o símbolo
total e quando encontra um ambiente como esse ele substitui o valor, nesse ambiente, com o valor do lado direito. Se o
ambiente global ou de nível superior é alcançado sem encontrar o símbolo total em seguida, essa variável é criado e atribuído a
lá. Para a maioria dos usuários << - cria uma variável global e atribui o valor do lado direito a ele 2. Somente quando << - tem sido
utilizado em uma função que foi devolvido como o valor de uma outra função será o comportamento especial descrito aqui
ocorrem.
saldo = função () {
cat ( "Seu saldo é", total, "\ n \ n")}
)
}
2 Em certo sentido, isso imita o comportamento em S-Plus uma vez que em S-Plus este operador sempre cria ou atribui a
A localização do arquivo local de inicialização é retirado o valor do R_PROFILE variável de ambiente. Se essa variável é definida, o
arquivo Rprofile.site no subdiretório casa R etc é usado. Este arquivo deve conter os comandos que você deseja executar cada vez que
R é iniciado sob o seu sistema. A segunda,, arquivo de perfil pessoal nomeado. Rprofile 3 pode ser colocado em qualquer diretório. Se R
for chamado nesse diretório, em seguida, esse arquivo será fornecido. Este arquivo oferece aos usuários individuais controle sobre seu
espaço de trabalho e permite a diferentes procedimentos de inicialização em diferentes diretórios de trabalho. Se não . Rprofile arquivo
é encontrado no diretório de inicialização, em seguida, R procura um. Rprofile arquivo no diretório home do usuário e usa isso (se
existir). Se a variável de ambiente R_PROFILE_USER
é definido, o arquivo que aponta para é usado em vez do. Rprofile arquivos.
Qualquer função chamada. Primeiro() em qualquer um dos dois arquivos de perfil ou na. RDATA imagem tem um estatuto
especial. Ele é automaticamente realizada no início de uma sessão R e pode ser usado para inicializar o ambiente. Por
exemplo, a definição no exemplo abaixo altera o prompt para US $ e estabelece várias outras coisas úteis que podem ser
tomadas para concedido no resto da sessão.
Assim, a sequência em que os arquivos são executados é, Rprofile.site, o perfil do usuário,. RDATA
e depois . Primeiro(). A definição em arquivos posteriores irá mascarar definições em arquivos anteriores.
Do mesmo modo uma função. Último(), se definiu, é (normalmente) executado no fim da sessão. Um exemplo é dado abaixo.
cat (pasta (date (), "\ nAdios \ n")) # É hora para o almoço?
}
não atendidas especificamente pela função genérica em questão, há sempre um ação padrão
forneceu.
Um exemplo torna as coisas mais claras. O mecanismo de classe oferece ao usuário a facilidade de desenhar e escrever
funções genéricas para fins especiais. Entre as outras funções genéricas são enredo()
para a exibição de objetos graficamente, resumo () para resumir análises de vários tipos, e
ANOVA () para a comparação de modelos estatísticos.
O número de funções genéricas que pode tratar uma classe de uma maneira específica pode ser muito grande. Por exemplo, as
funções que podem acomodar em alguns objetos de moda de classe " quadro de dados"
incluir
Por outro lado o número de classes de uma função genérica podem lidar também pode ser muito grande. Por exemplo, a enredo()
função tem um método padrão e variantes para objetos de classes
"quadro de dados", "densidade", "fator", e mais. A lista completa pode ser obtido novamente usando o métodos() função:
Para muitas funções genéricas do corpo da função é bastante curta, por exemplo
> coef
function (object, ...) UseMethod (
"coeficiente")
A presença de UseMethod indica que esta é uma função genérica. Para ver quais métodos estão disponíveis, podemos usar métodos()
Neste exemplo, existem seis métodos, nenhum dos quais pode ser visto por digitar o seu nome. Podemos ler estes por qualquer um
A função chamada gen.cl será invocado pelo genérico gen para aula cl, por isso não nomear funções neste estilo salvo se
se destinam a ser métodos.
O leitor é remetido para o Definição R Idioma para uma discussão mais completa deste mecanismo.
51
11 Os modelos estatísticos em R
Esta seção presume que o leitor tem alguma familiaridade com metodologia estatística, em particular com a análise de
regressão e análise de variância. Mais tarde, fazer algumas suposições bastante mais ambicioso, ou seja, de que alguma coisa
se sabe sobre modelos lineares generalizados e regressão não linear.
Os requisitos para modelos estatísticos de montagem são suficientemente bem definida para tornar possível a construção de ferramentas
gerais que se aplicam em um amplo espectro de problemas.
R fornece um conjunto interligado de facilidades que tornam modelos estatísticos de montagem muito simples. Como
mencionamos na introdução, a saída básico é mínima, e é preciso pedir os dados chamando funções extrator.
Σp
yi= β j X ij + e Eu, e Eu ~ NID (0, σ 2), i = 1, . . . , n
j=0
y = + e Xβ
Exemplos
Antes de dar uma especificação formal, alguns exemplos podem ser úteis em definir a imagem.
supor y, x, x0, x1, x2, . . . são variáveis numéricas, X é uma matriz e UMA, B, C, . . . são factores. As seguintes fórmulas no lado esquerdo
abaixo especificam modelos estatísticos como descrito no lado direito.
y ~ xy ~ 1 + x Ambas implicam o mesmo modelo de regressão linear simples de y em x. O primeiro tem uma
prazo).
log (y) ~ x1 + x2
regressão múltipla da variável transformada, log ( y), em X 1 e X 2 (com uma termo intercepção implícito).
poli y ~ (x, 2) y ~ 1 + x + I
(x ^ 2)
regressão polinomial de y em X de grau 2. A primeira forma usa polinômios ortogonais, eo segundo utiliza
poderes explícitos, como base.
y ~ X + poli (x, 2)
Regressão múltipla y com matriz modelo que consiste na matriz X , bem como em termos polinomiais X de grau
2.
Capítulo 11: Os modelos estatísticos em R 52
y~A análise de classificação único de modelo variância y, com as classes determinadas pela UMA.
y~A*B
y ~ A + B + A: B Y ~
B% na% A y ~ A / B
modelo de dois fatores não aditiva de y em UMA e B. Os dois primeiros especificar a mesma classificação cruzados e o
segundo dois especificar a mesma classificação aninhada. Em termos abstratos todos os quatro especificar o mesmo
modelo subespaço.
y ~ (A + B + C) ^ 2 y ~ A *
B * C - A: B: C
Três experimento factor, mas com um modelo contendo os efeitos principais e duas interacções único factor. Ambas
as fórmulas especificar o mesmo modelo.
y ~ A * xy ~
A/X
y ~ A / (1 + x) - 1
modelos lineares simples separados de regressão de y em X dentro dos níveis de UMA, com diferentes codificações. A
última forma produz estimativas explícitas de como muitos intercepta e inclinações diferentes, pois há níveis em UMA.
y ~ A * B + Erro (C)
Uma experiência com dois factores de tratamento, UMA e B, e erro estratos determinada pelo factor C. Por exemplo, um
experimento de separação, com parcelas inteiras (e portanto também subparcela), determinado pelo factor C.
O operador ~ é utilizado para definir um fórmula modelo em R. A forma, por um modelo linear comum, é
resposta é um vector ou matriz, (ou expressão avaliando a um vector ou matriz) que define a variável (s) resposta.
i prazo é também
• um factor, ou
• uma expressão da fórmula que consiste de factores, vectores ou matrizes ligadas por
operadores de fórmula.
Em todos os casos cada termo define um conjunto de colunas, quer para ser adicionado ou removido a partir da
matriz modelo. UMA 1 significa uma coluna de intercepção e é incluído por defeito na matriz modelo, a menos que
explicitamente removido. o operadores de fórmulas são semelhantes em vigor para a notação Wilkinson e Rogers usado
por programas como Glim e Genstat. Uma mudança inevitável é que o operador '' torna-se ':' desde o período é um
personagem nome válido em R.
A notação é resumido abaixo (com base na Chambers & Hastie, 1992, p.29):
M_1: m_2 O produto de tensor M 1 e H 2. Se ambos os termos são fatores, então o “subclasses”
fator.
EU( H) Isolar M. Dentro M todos os operadores têm o seu significado aritmética normal, e esse termo aparece na matriz
modelo.
Note-se que dentro dos parênteses que normalmente encerram argumentos da função todos os operadores têm o seu significado
aritmética normal. A função EU() é uma função de identificação utilizado para permitir termos em fórmulas modelo a ser definido utilizando
operadores aritméticos.
Nota particularmente que as fórmulas modelo especificar o colunas da matriz do modelo, a especificação dos parâmetros
estar implícita. Este não é o caso em outros contextos, por exemplo, na especificação de modelos não lineares.
11.1.1 Contrastes
Precisamos de pelo menos alguma idéia de como as fórmulas modelo especificar as colunas da matriz modelo. Isso é fácil se
tivermos variáveis contínuas, como cada um fornece uma coluna da matriz modelo (e a intercepção irá fornecer uma coluna de
uns se incluídos no modelo).
Que tal um k- fator de nível UMA? A resposta é diferente para fatores sem ordem e ordenada. Para
não ordenado fatores k - 1 colunas são gerados para os indicadores do segundo,. . . , k th níveis do fator. (Assim, a
parametrização é implícito ao contrário, a resposta a cada nível com que na primeira.) Para pedido factores a k - 1 colunas são
os polinómios ortogonais sobre
1, . . . , k, omitindo o termo constante.
Embora a resposta já é complicado, não é toda a história. Em primeiro lugar, se a intercepção está omitida em um modelo que
contém um factor de termo, o primeiro como o termo é codificado em k colunas dando os indicadores para todos os níveis. Em
segundo lugar, todo o comportamento pode ser alterado pela
opções configuração para contrastes. A configuração padrão em R é
A principal razão para mencionar isto é que R e S têm diferentes padrões para factores não ordenadas, S utilizando Helmert
contrasta. Então, se você precisa comparar seus resultados com os de um livro ou de papel que costumava S-Plus, você precisará
definir
Esta é uma diferença deliberada, como contrastes de tratamento (padrão do R) são pensados mais fácil para os recém-chegados de interpretar.
Nós ainda não ter terminado, como o esquema de contraste a ser utilizado pode ser definido para cada termo no modelo usando as
funções contrastes e C.
Nós ainda não ter considerado termos de interação: geram os produtos das colunas introduzidas para os seus termos de
componentes.
Embora os detalhes são complicadas, fórmulas modelo em R será normalmente gerar os modelos que um estatístico perito seria de
esperar, desde que a marginalidade é preservada. Encaixe, por exemplo, um modelo com uma interacção mas não os efeitos principais
correspondentes conduzirá em geral para os resultados surpreendentes, e é apenas para os especialistas.
Capítulo 11: Os modelos estatísticos em R 54
Por exemplo
O parâmetro importante (mas tecnicamente opcional) Dados = produção especifica que todas as variáveis necessárias para
construir o modelo deve vir em primeiro lugar a partir da Produção quadro de dados. Este é o caso, independentemente de quadro
de dados Produção foi anexado no caminho de procura ou não.
coef ( objeto)
Extrair o coeficiente de regressão (matriz). Forma longa: coeficientes
( objeto).
desvio( objeto)
soma dos quadrados dos resíduos, ponderada se for o caso.
Fórmula( objeto)
Extrai-se a fórmula modelo.
enredo( objeto)
Produzir quatro parcelas, mostrando resíduos, valores embutidos e alguns diagnósticos.
impressão( objeto)
Imprimir uma versão concisa do objeto. Na maioria das vezes usado de forma implícita.
resíduos ( objeto)
Extrai-se a (matriz de) resíduos, ponderação apropriado. Forma curta: resid ( objeto).
degrau( objeto)
Escolha um modelo adequado, adicionando ou caindo termos e preservar hierarquias. O modelo com o menor
valor de AIC (Um Critério de Informação de Akaike) descobriu na busca por etapas é retornado.
Capítulo 11: Os modelos estatísticos em R 55
resumo ( objeto)
Imprimir um resumo abrangente dos resultados da análise de regressão.
vcov ( objeto)
Retorna a matriz de variância-covariância dos principais parâmetros de um objeto modelo ajustado.
Note-se que, além AOV () permite uma análise de modelos com múltiplas camadas de erro, como experimentos parcela
subdividida, ou blocos incompletos equilibrados com recuperação de informações inter-bloco. A fórmula modelo
Por exemplo, com todos os factores variáveis que determinam, uma fórmula modelo tal como em que:
iria tipicamente ser usado para descrever uma experiência com o modelo significativo v + n * p * k e três estratos de erro, ou seja,
“entre quintas”, “em Farms, entre os blocos” e “dentro de blocos”.
Para as experiências de multiextratado o procedimento é primeiro a projectar a resposta para os estratos de erro, mais uma vez em
sequência, e para ajustar o modelo média para cada projecção. Para mais detalhes, veja Chambers & Hastie (1992).
Uma alternativa mais flexível para a tabela ANOVA padrão completo é comparar dois ou mais modelos directamente usando o ANOVA
() função.
A tela é em seguida uma tabela ANOVA que mostra as diferenças entre os modelos ajustados quando montados em
sequência. Os modelos ajustados a serem comparadas será normalmente uma sequência hierárquica, de curso. Isso não dá
informações diferentes para o padrão, mas torna mais fácil de compreender e controle.
No nova fórmula o nome especial constituído por um período, '', somente, pode ser usado para significar ‘a parte
correspondente da velha fórmula modelo’. Por exemplo,
caberia uma regressão múltipla cinco variate com variáveis (presumivelmente) a partir do quadro de dados
Produção, ajustar um modelo adicional incluindo uma variável regressor sexto, e encaixar uma variante do modelo onde a resposta
tinha uma raiz quadrada transformação aplicada.
Note-se especialmente que, se o dados = argumento é especificado na chamada original para a função de encaixe modelo, esta
informação é passada através do objeto modelo ajustado para atualizar() e seus aliados.
O nome '.' Também pode ser usado em outros contextos, mas com significado ligeiramente diferente. Por exemplo
caberia um modelo com resposta y e variáveis regressoras todas as outras variáveis no quadro de dados
Produção.
Outras funções para explorar seqüências incrementais de modelos são add1 (), drop1 () e
degrau(). Os nomes destes dar uma boa pista para o seu propósito, mas para mais detalhes consulte a ajuda on-line.
• Há uma resposta, y, de variáveis de interesse e estímulo X 1, X 2, . . . , cujos valores influenciam a distribuição da resposta.
• As variáveis de estímulo influenciar a distribuição de y através uma única função linear, somente.
Esta função linear é chamado de preditor linear, e é geralmente escrito
η = β 1 X 1 + β 2 X 2 + · · · + β p X p,
• A distribuição de y é a forma de
Onde φ é um parâmetro de escala ( possivelmente conhecido), e é constante para todas as observações, UMA
representa um peso antes, supõe conhecido mas, possivelmente, variando de acordo com as observações, e
μ é a média de y. Assim, presume-se que a distribuição de y é determinada por sua média e, eventualmente, um parâmetro de
escala bem.
= μ m (η), η = m - 1 ( μ) = `(μ)
Estes pressupostos estão soltos o suficiente para abranger uma ampla classe de modelos úteis na prática estatística, mas firme o
suficiente para permitir o desenvolvimento de uma metodologia unificada de estimação e inferência, pelo menos aproximadamente. O
leitor é remetido para qualquer uma das obras de referência atuais sobre o assunto para mais detalhes, tais como McCullagh & Nelder
(1989) ou Dobson (1990).
Capítulo 11: Os modelos estatísticos em R 57
11.6.1 Famílias
A classe dos modelos lineares generalizados tratado por instalações fornecidos em R inclui gaussian, binomial, poisson, gaussiana
inversa e gama distribuições de resposta e também quasi-likelihood
modelos em que a distribuição de resposta não é explicitamente especificados. Neste último caso, o função de variância deve ser
especificada como uma função da média, mas em outros casos, esta função é implicado pela distribuição resposta.
Cada distribuição resposta admite uma variedade de funções de ligação para conectar a média com o preditor linear. Aqueles
automaticamente disponíveis são mostrados na tabela a seguir:
A combinação de uma distribuição de resposta, uma função de ligação e vários outros pedaços de informação que são
necessários para realizar o exercício de modelagem é chamado de família do modelo linear generalizado.
A função de R para ajustar um modelo linear generalizado é GLM () o qual usa o formulário
> fitted.model <- glm ( Fórmula, família = family.generator, dados = quadro de dados)
A única novidade é o family.generator, que é o instrumento pelo qual a família está descrito. É o nome de uma função que
gera uma lista de funções e expressões que, juntos, definir e controlar o processo de modelo e estimativa. Embora isso possa
parecer um pouco complicado à primeira vista, o seu uso é bastante simples.
Os nomes da norma, geradores família fornecidas são dadas em “Nome de Família” na tabela na Seção 11.6.1 [famílias],
página 57. Onde há uma escolha de links, o nome do link pode também ser fornecido com o nome de família, em parênteses
como um parâmetro. No caso do quase família, a função de variância também pode ser especificado desta maneira.
o gaussian família
Uma chamada tais como
mas muito menos eficiente. Note como a família gaussiana não é fornecida automaticamente com uma escolha de links, de modo
nenhum parâmetro é permitido. Se um problema requer uma família gaussiana com um link fora do padrão, isso geralmente pode ser
alcançado através da quase família, como veremos mais tarde.
o binômio família
Considere-se uma pequena exemplo, artificial, de Silvey (1970).
Capítulo 11: Os modelos estatísticos em R 58
Na ilha do mar Egeu da Kalythos os habitantes do sexo masculino sofrem de uma doença ocular congênita, cujos efeitos se tornam
mais acentuada com o aumento da idade. As amostras de machos insular de várias idades foram testados para a cegueira e os
resultados registados. Os dados são mostrados abaixo:
Era: 20 35 45 55 70
No. testados: 50 50 50 50 50
Não cego: 6 17 26 37 44
O problema que considerar é para caber ambos os modelos logísticos e probit a esses dados e estimar para cada modelo do DL50,
que é a idade em que a chance de cegueira por um habitante do sexo masculino é de 50%.
y ~ B ( n, F (β 0 + β 1 x))
onde para o caso probit, F (z) = Φ ( z) é a função de distribuição normal padrão, e no caso logit (o padrão), F (z) = E z / ( 1 + e z). Em
ambos os casos, a DL50 é
DL50 = - β 0 / β 1
O primeiro passo é para definir os dados acima como uma estrutura de dados
Para ajustar um modelo binomial usando GLM () existem três possibilidades de resposta:
• Se a resposta é um vetor presume-se para segurar binário dados, e assim deve ser um vetor 0/1.
• Se a resposta é um matriz de duas colunas presume-se que a primeira coluna contém o número de sucessos para o
ensaio e a segunda contém o número de falhas.
• Se a resposta é um fator, seu primeiro nível é tomado como falha (0) e todos os outros níveis como 'sucesso' (1).
Aqui temos a segunda destas convenções, então adicionamos uma matriz para a nossa estrutura de dados:
> fmp <- glm (Ymat ~ x, família = binomial (link = probit), data = kalythos)
> fml <- GLM (Ymat ~ x, família = binomial, dados = kalythos)
Desde o link logit é o padrão, o parâmetro pode ser omitido na segunda chamada. Para ver os resultados de cada caber
poderíamos usar
Ambos os modelos se encaixam (muito) bem. Para encontrar a estimativa DL50 podemos usar uma função simples:
As estimativas reais de esses dados são 43.663 anos e 43.601 anos, respectivamente.
modelos de Poisson
Com a família Poisson o link padrão é o registro, e na prática, o principal uso desta família é para caber modelos log-linear de
Poisson substituto para dados de frequência, cuja distribuição real é muitas vezes multinomial. Este é um assunto grande e
importante que não vamos discutir mais aqui. Ele ainda constitui uma parte importante do uso de modelos generalizados
não-gaussianas gerais.
Capítulo 11: Os modelos estatísticos em R 59
Ocasionalmente, os dados de Poisson genuinamente surge na prática e, no passado, foi muitas vezes analisadas como dados gaussianas
após tanto um registo ou uma transformação de raiz quadrada. Como uma alternativa elegante para este último, um modelo linear de Poisson
generalizada pode ser equipado como no exemplo a seguir:
modelos quasi-likelihood
Para todas as famílias a variância da resposta dependerá da média e vai ter o parâmetro de escala como um multiplicador. A
forma de dependência da variância na média é uma característica da distribuição de resposta; por exemplo, para a distribuição
de Poisson Var [ Y] = μ.
Para a estimativa quase probabilidade e inferência a distribuição resposta precisa não é especificado, mas sim apenas uma
função de ligação e a forma da função de variação, uma vez que depende da média. Desde estimativa de quasi-verossimilhança
usa formalmente técnicas idênticas às da distribuição de Gauss, esta família fornece uma maneira de modelos de gaussianas de
montagem, com funções de ligação não-padrão ou funções de variância, aliás.
y = θ1 z1 + e
z2- θ2
1
y= + e
β1 X1+ β2 X2
Onde X 1 = z 2 / z 1, X 2 = - 1 / z 1, β 1 = 1 / θ 1 e β 2 = θ 2 / θ 1. Supondo que um quadro de dados adequado para ser configurado que poderiam caber esta
regressão não-linear como
O leitor é remetido para o manual e o documento de ajuda para obter mais informações, conforme necessário.
Aqui está um exemplo de Bates & Watts (1988), página 51. Os dados são:
> x <- c (0,02, 0,02, 0,06, 0,06, 0,11, 0,11, 0,22, 0,22, 0,56, 0,56,
Capítulo 11: Os modelos estatísticos em R 60
1,10, 1,10)
> y <- c (76, 47, 97, 107, 123, 139, 159, 152, 191, 201, 207, 200)
Para fazer o ajuste precisamos estimativas iniciais dos parâmetros. Uma maneira de encontrar valores iniciais sensatas é
plotar os dados, acho que alguns valores de parâmetro, e sobrepor a curva modelo usando esses valores.
Nós poderíamos fazer melhor, mas esses valores iniciais de 200 e 0,1 parece adequado. Agora faça o ajuste:
Após a montagem, out $ mínimo é o SSE, e $ Estimativa para fora são os quadrados estimativas menos dos parâmetros.
Para obter os erros padrão aproximados (SE) das estimativas que fazemos:
> sqrt (diag (2 * fora $ mínimo / (comprimento (y) - 2) * resolver (fora $ hessian)))
o 2 que é subtraído na linha acima representa o número de parâmetros. Um intervalo de confiança de 95% seria a
estimativa do parâmetro ± 1,96 SE. Nós podemos sobrepor os mínimos quadrados caber em um novo lote:
O pacote padrão Estatísticas oferece muito mais extensas instalações para modelos não lineares de ajuste por mínimos quadrados. O
modelo que acabamos equipado é o modelo de Michaelis-Menten, para que possamos usá
vm K
212.68370711 0.06412123 residual soma de quadrados:
1195.449
> Resumo (ajuste)
parâmetros:
Estimativa Std. valor de erro t Pr (> | t |) Vm 2.127e + 02
6.947e + 00 30,615 3.24e-11 K 6.412e-02 8.281e-03 7,743
1.57e-05
Após a montagem, out $ mínimo é o log-probabilidade negativo, e $ Estimativa para fora são as estimativas de máxima
verossimilhança dos parâmetros. Para obter os SEs aproximadas das estimativas que fazemos:
• regressões aproximam locais. o loess () função ajusta uma regressão não paramétrica, utilizando uma regressão ponderada localmente.
Tais regressões são úteis para realçar uma tendência nos dados desorganizados ou para a redução de dados para dar algum
conhecimento sobre um grande conjunto de dados. Função loesse é no pacote standard Estatísticas, juntamente com o código para a
regressão projeção perseguição.
• regressão robusta. Existem várias funções disponíveis para os modelos de regressão de ajuste em uma maneira
resistente à influência de outliers extremos nos dados. Função lqs no pacote recomendado MASSA ( https://CRAN.R-project.org/package=MA
fornece algoritmos stateof na arte para se encaixa altamente resistentes. Métodos menos resistentes, mas
estatisticamente mais eficiente estão disponíveis em embalagens, por exemplo função rlm no pacote MASSA ( https: //
CRAN.R-project.org/package=MASS).
• modelos aditivos. Esta técnica tem como objectivo a construção de uma função de regressão a partir de funções aditivas
lisas das variáveis que determinam, normalmente um para cada variável determinante. Funções AVAS e ás no pacote acepack
( https://CRAN.R-project.org/package=acepack)
e funções bruto e marte no pacote mda ( https: / / CRAN. projeto R-. org / pacote = mda) fornecer alguns exemplos dessas
técnicas em pacotes de contribuições dos usuários para
R. Uma extensão é Generalizadas modelos aditivos, implementado em pacotes de contribuições dos usuários gam ( https://CRAN.R-project.o
e mgcv ( https: // CRAN. R-project.org/package=mgcv).
Capítulo 11: Os modelos estatísticos em R 62
• modelos Tree-base. Em vez de procurar um modelo linear mundial explícita para previsão ou interpretação, os modelos baseados em
árvore procuram bifurcam os dados, de forma recursiva, em pontos críticos das variáveis que determinam a fim de dividir os dados
em última análise em grupos que são tão homogéneo quanto possível no interior, e como heterogéneos quanto possível entre. Os
resultados levam frequentemente a insights que outros métodos de análise de dados tendem a não produzir. Os modelos são
novamente especificado no formulário modelo linear comum. A função de encaixe do modelo é
árvore(), mas muitas outras funções genéricas como enredo() e texto() são bem adaptados para exibir os resultados de um
baseado em árvore ajuste do modelo de forma gráfica. modelos de árvore estão disponíveis em R através da os pacotes de
contribuições dos usuários rpart ( https: / / CRAN. projeto R-. org / pacote = rpart) e árvore ( https: / / CRAN. projeto R-. org /
package = árvore).
63
12 procedimentos gráficas
instalações gráficas são um componente importante e extremamente versátil do ambiente R. É possível utilizar as instalações para
exibir uma ampla variedade de gráficos estatísticos e também para construir inteiramente novos tipos de gráfico.
As instalações gráficos podem ser usados em ambos os modos interactivo e em lote, mas na maioria dos casos, o uso
interativo é mais produtivo. uso interativo também é fácil porque na inicialização tempo R inicia uma gráfica driver do dispositivo que
abre uma especial janela de gráficos para a exibição de gráficos interativos. Embora isso é feito automaticamente, pode útil saber
que o comando usado é
X11 () sob o UNIX, janelas() no Windows e quartzo() sob macos. Um novo dispositivo pode sempre ser aberto por dev.new ().
Uma vez que o driver de dispositivo está sendo executado, comandos de plotagem R pode ser usado para produzir uma variedade de telas
gráficas e criar inteiramente novos tipos de display.
• Alto nível funções de plotagem criar um novo lote no dispositivo gráficos, possivelmente com machados, etiquetas, títulos e assim por diante.
• Nível baixo funções de plotagem adicionar mais informações para um lote existente, como pontos extras, linhas e etiquetas.
• Interativo funções de gráficos permitem que você interativamente adicionar informações para, ou extrair informações, uma trama
existente, usando um dispositivo apontador, como um mouse. Além disso, R mantém uma lista de parâmetros gráficas que pode ser
Este manual apenas descreve o que são conhecidos como gráficos 'base'. Um subsistema de gráficos separada no pacote grade
coexiste com base - é mais poderoso, mas mais difícil de usar. Há um pacote recomendado treliça ( https://CRAN.R-project.org/package=lattice)
que se baseia em grade e fornece maneiras de produzir gráficos de vários painéis semelhantes aos do latada sistema em S.
enredo( x, y)
enredo( xy) E se X e y são vectores, enredo( x, y) produz uma dispersão de y contra x. O mesmo
efeito pode ser produzido através do fornecimento de um argumento (segunda forma) quer como uma lista que contém dois
elementos X e y ou uma matriz de duas colunas.
enredo( x) E se X é uma série de tempo, isso produz um lote de séries temporais. E se X é um vector numérico, que produz um
gráfico dos valores no vector contra o seu índice de no vector. E se X
é um vector complexo, que produz um lote de imaginário contra partes reais dos elementos do vetor.
enredo( f)
enredo( f, y)
f é um factor de objecto, y é um vector numérico. A primeira forma gera um gráfico de barras do f;
a segunda forma de boxplots produz y para cada nível de f.
Capítulo 12: procedimentos gráficos 64
enredo( df)
trama (~ expr)
enredo( y ~ expr)
df é um quadro de dados, y é qualquer objeto, expr é uma lista de nomes de objectos separados por '+' (por exemplo, a + b + c). As
duas primeiras formas de produzir gráficos de distribuição das variáveis em uma trama de dados (primeira forma) ou de um número de
objectos chamados (segunda forma). A terceira parcelas do formulário y contra todo objeto nomeado em expr.
produz uma matriz de dispersão de pares de variáveis definidas pelas colunas de X, isto é, a cada coluna de X é plotado contra
qualquer outra coluna de X e o resultante n (n - 1) tramas são dispostas numa matriz com trama escalas constante ao longo das
linhas e colunas da matriz.
Quando três ou quatro variáveis estão envolvidas a coplot pode ser mais esclarecedor. E se uma e b são vectores e numéricos c é
um vector ou factor objecto numérico (todos do mesmo comprimento), então o comando
> coplot (a ~ b | c)
produz uma série de diagramas de dispersão de uma contra b para valores dados de c. E se c é um fator, isto significa simplesmente que uma é
plotado contra b para cada nível de c. Quando c é numérico, ele é dividido em um número de intervalos condicionado e para cada intervalo uma é
plotado contra b para valores de c
dentro do intervalo. O número e posição dos intervalos pode ser controlada com given.values =
argumento para coplot () -a função co.intervals () é útil para seleccionar intervalos. Você também pode usar dois dado variáveis
com um comando como
> coplot (a ~ b | c d +)
que produz scatterplots de uma contra b para cada intervalo condicionado conjunta de c e d.
o coplot () e pares() funcionar tanto ter um argumento painel = que pode ser utilizado para personalizar o tipo de trama que aparece
em cada painel. O padrão é pontos() para produzir um gráfico de dispersão, mas através do fornecimento de alguma outra função de
baixo nível gráficos de dois vetores X e y como o valor de painel = você pode produzir qualquer tipo de gráfico que você deseja. Um
exemplo de função do painel é útil para coplots panel.smooth ().
parcelas de distribuição de comparação. A primeira forma traça o vector numérica X contra as pontuações normais
esperadas ordem (uma pontuação trama normal) e o segundo acrescenta uma linha recta para uma tal trama, traçando
uma linha através da distribuição e dados quartis. A terceira forma traça os quantis de X contra aqueles de y para
comparar as suas respectivas distribuições.
Hist (x)
Hist (x, Nclass = n)
Hist (x, quebras = b, ...)
Produz um histograma do vector numérico x. Um número razoável de classes é normalmente escolhido, mas uma
recomendação pode ser dado com a Nclass = argumento. Alternativamente, os pontos de interrupção pode ser
especificado exatamente com a breaks = argumento.
Capítulo 12: procedimentos gráficos 65
Se o probabilidade = TRUE argumento é dado, as barras representam frequências relativas dividido pela largura bin
em vez de contagens.
Parcelas de três variáveis. o imagem enredo desenha uma grade de retângulos usando cores diferentes para representar o
valor de z, a contorno chama a trama de linhas de contorno para representar o valor de z, e a persp trama desenha uma
superfície em 3D.
adicionar = TRUE Força a função de agir como uma função de baixo nível de gráficos, sobrepondo o enredo
no lote atual (algumas funções apenas).
eixos = FALSE
Suprime geração de eixos-útil para adicionar seus próprios eixos personalizados com o
eixo() função. O padrão, eixos = VERDADEIRO, meios incluem eixos.
log = "x" log = "y" log = "XY" faz com que o x, y ou ambos os eixos para ser logarítmica. Isto irá funcionar para muitos, mas não
type = "h" Traçar linhas verticais a partir de pontos em relação ao eixo de zero ( alta densidade)
Tipo = "s" type = "S" parcelas-função em degrau. Na primeira forma, o topo da vertical define a
type = "n" Sem plotagem em tudo. No entanto eixos ainda são atraídos (por padrão) eo
sistema de coordenadas é configurado de acordo com os dados. Ideal para a criação de lotes com
funções subseqüentes gráficas de baixo nível.
XLAB = corda
ylab = corda
rótulos de eixo para o X e y eixos. Use esses argumentos para mudar as etiquetas padrão, geralmente os nomes dos
objetos usados na chamada para a função de plotagem de alto nível.
principais = corda
Figura título, colocado no topo da trama de uma grande fonte.
sub = corda
Sub-título, colocada logo abaixo do X- eixo em uma fonte menor.
Capítulo 12: procedimentos gráficos 66
Os pontos (x, y) de
linhas (x, y)
Adiciona pontos ou linhas ligadas a trama actual. enredo() 's tipo = argumento também pode ser passada para
essas funções (e o padrão é " p" para pontos() e " eu" para
linhas ().)
O parâmetro gráficos type = "n" suprime os pontos, mas define-se os eixos, eo texto() função fornece
caracteres especiais, conforme especificado pelo vector caráter
nomes para os pontos.
coeficientes componente de comprimento de 2 (tal como o resultado de funções de ajuste do modelo,) que são tomadas como
uma intercepção e inclinação, nessa ordem.
legenda (, preencha = v)
Cores para caixas cheias
legenda (, col = v)
Cores em que pontos ou linhas serão desenhadas
legenda (, = LTY v)
estilos de linha
legenda (, LWD = v)
larguras de linha
legenda (, PCH = v)
caracteres plotagem (vector personagem)
Capítulo 12: procedimentos gráficos 67
funções de plotagem de baixo nível geralmente requerem algumas informações de posicionamento (por exemplo, X e y coordena) para determinar
onde colocar os novos elementos do enredo. As coordenadas são dadas em termos de
coordenadas do usuário os quais são definidos pelo anterior comando de alto nível ilustrações e são escolhidos com base nos dados
fornecidos.
Onde X e y argumentos são necessários, também é suficiente para abastecer um único argumento de ser uma lista com elementos nomeados X e y.
Da mesma forma uma matriz com duas colunas é também uma entrada válida. Desta forma funções tais como localizador () ( ver abaixo) pode ser
utilizado para especificar posições sobre uma trama de forma interactiva.
> texto (x, y, a expressão (pasta (bgroup ( "(", no topo (n, x) ")"), p ^ x, q ^ {nx})))
Mais informações, incluindo uma lista completa das características lata disponível obtido a partir de dentro R usando os
comandos:
• fontes Hershey pode produzir a melhor saída, especialmente em uma tela de computador, para o texto rodado e / ou pequeno.
• fontes Hershey fornecer certos símbolos que podem não estar disponíveis nas fontes padrão. Em particular, há signos do
zodíaco, símbolos cartográficos e símbolos astronômicos.
Mais informações, incluindo tabelas de caracteres Hershey pode ser obtido a partir de dentro R usando os comandos:
localizador() é geralmente chamado sem argumentos. É particularmente útil para seleccionar interactivamente posições de
elementos gráficos tais como lendas ou rótulos quando é difícil calcular antecipadamente o gráfico onde deve ser colocado. Por
exemplo, para colocar algum texto informativo perto de um ponto afastado, o comando
pode ser útil. ( localizador() será ignorado se o dispositivo atual, como pós-escrito não suporta apontando interativo.)
o identificar() funções não executa nenhuma plotagem em si, mas simplesmente permite que o usuário mova o ponteiro do mouse e
clique no botão esquerdo do mouse próximo a um ponto. Se houver um ponto próximo do ponteiro do rato que vai ser marcado com o seu
número de índice (isto é, a sua posição no x / y vetores) plotados nas proximidades. Alternativamente, você poderia usar alguma corda
informativo (como um nome caso) como um destaque usando a etiquetas argumento para identificar(), ou desativar a marcação em conjunto
com o
Lote = FALSE argumento. Quando o processo é finalizado (ver acima), identificar() retorna os índices dos pontos seleccionados;
você pode usar esses índices para extrair os pontos selecionados a partir dos vetores originais X e y.
Uma lista separada de parâmetros gráficos é mantido para cada dispositivo ativo, e cada dispositivo tem um conjunto padrão de
parâmetros quando inicializado. parâmetros gráficos pode ser definida de duas maneiras: ou permanentemente, afetando todas as funções
gráficas que acessam o dispositivo atual; ou temporariamente, afetando apenas um único gráficos função de chamada.
par() Sem argumentos, retorna uma lista de todos os parâmetros gráficos e seus valores para o dispositivo atual.
Nota que as chamadas para par() sempre afetar os valores globais de parâmetros gráficos, mesmo quando
par() é chamado de dentro de uma função. Isso é muitas vezes o comportamento, geralmente indesejável queremos definir alguns
parâmetros gráficos, fazer alguma plotagem, e em seguida, restaurar os valores originais de modo a não afetar a sessão R do usuário. Você
pode restaurar os valores iniciais, salvando o resultado de par()
ao fazer alterações, e a restauração dos valores iniciais quando traçando é completa.
> oldpar <- par (col = 4, LTY = 2)
. . . plotagem comandos. . .
> par (oldpar)
Para salvar e restaurar todos configurável 1 parâmetros gráficas usar
Infelizmente, isso não é totalmente implementado de forma consistente e, por vezes, é necessário definir e redefinir
parâmetros gráficos usando par().
name = valor
A descrição do efeito do parâmetro. nome é o nome do parâmetro, isto é, o nome do argumento para usar em
chamadas para par() ou uma função de gráficos. valor é um valor típico que você pode usar ao definir o parâmetro.
Observe que eixos é não um parâmetro de gráficos, mas um argumento para alguns enredo métodos: veja
xaxt e yaxt.
1 Alguns parâmetros gráficos, tais como o tamanho do dispositivo atual são apenas para informação.
Capítulo 12: procedimentos gráficos 70
pch = "+" Caractere a ser usado para traçar pontos. O padrão varia com drivers gráficos,
mas é normalmente ' ◦ '. Pontos traçados tendem a aparecer um pouco acima ou abaixo da posição apropriada a
menos que você use "" como o personagem plotagem, que produz pontos centrados.
PCH = 4 Quando PCH é dada como um número inteiro entre 0 e 25, inclusive, um símbolo trama especializado é
produzido. Para ver o que os símbolos são, use o comando
Aqueles de 21 a 25 podem aparecer para duplicar símbolos anteriores, mas pode ser colorido de diferentes maneiras:
consulte a ajuda pontos e os seus exemplos. Além do que, além do mais, PCH pode ser um personagem ou um número no
LTY = 2 tipos de linhas. estilos de linha alternativos não são suportados em todos os dispositivos gráficos (e variar sobre aqueles que
fazer), mas linha de tipo 1 é sempre uma linha a cheio, linha de tipo 0 é sempre invisível, e tipos de linhas 2 e seguintes são
linhas tracejadas ou pontilhadas, ou alguma combinação de ambos.
LWD = 2 larguras de linha. largura desejada de linhas, em múltiplos de largura de linha “padrão”. Afecta linhas de eixo, bem como
com linhas desenhadas (linhas), etc. Nem todos os dispositivos suportam esta, e alguns têm restrições sobre as larguras
que podem ser usados.
col = 2 Cores a serem utilizadas para pontos, linhas, texto, regiões e imagens cheias. Um número a partir da paleta
atual (ver? paleta) ou uma cor nomeada.
col.axis col.lab col.main col.sub A cor a ser usada para anotação eixo, X e y etiquetas, principal e sub-títulos, re-
pectivamente.
fonte = 2 Um número inteiro que especifica qual fonte a ser usada para o texto. Se possível, drivers de dispositivo organizar para que 1
corresponde a texto simples, 2 para negrito, 3 para itálico, 4 a negrito itálico e 5 a uma fonte de símbolo (que incluem letras
gregas).
font.axis font.lab font.main font.sub A fonte a ser usada para anotação eixo, X e y etiquetas, principal e sub-títulos, respec-
vamente.
aj = -0,1 Justificação de texto em relação à posição de plotagem. 0 meios esquerda justificar, 1 significa
direito justificar e 0,5 meios para centrar horizontalmente sobre a posição trama. O valor real é a proporção de
texto que aparece à esquerda da posição de plotagem, então um valor de - 0,1 deixa um intervalo de 10% da
largura do texto entre o texto e a posição de trama.
CEX = 1,5 expansão personagem. O valor é o tamanho desejado de caracteres de texto (incluindo
traçando caracteres) em relação ao tamanho do texto padrão.
Capítulo 12: procedimentos gráficos 71
cex.axis cex.lab cex.main cex.sub A expansão caractere a ser usado para anotação eixo, X e y etiquetas, principal e
subtítulos, respectivamente.
Os primeiros dois números são o número desejado de intervalos de carrapato na X e y eixos respectivamente. O terceiro
número é o comprimento desejado de rótulos de eixo, em caracteres (incluindo o ponto decimal.) Escolhendo um demasiado
pequeno valor para este parâmetro pode resultar em todos os rótulos de escala a ser arredondado para o mesmo número!
las = 1 Orientação de rótulos de eixo. 0 significa sempre paralela ao eixo, 1 significa sempre horizontal, e 2 significa
sempre perpendicular ao eixo.
mgp = c (3, 1, 0)
Posições de componentes de eixo. O primeiro componente é a distância entre a etiqueta eixo para a posição do
eixo, em linhas de texto. O segundo componente é a distância para os rótulos de escala, e o componente final é a
distância a partir da posição do eixo para a linha de eixo (normalmente zero). Os números positivos medida fora da
região de trama, os números negativos dentro.
tck = 0,01 Comprimento de marcas de verificação, como uma fracção do tamanho da região de trama. Quando tck
é pequena (menos do que 0,5) as marcas de escala na X e y eixos são forçados a ter o mesmo tamanho. Um valor de 1
indica as linhas de grade. Os valores negativos dar marcas de escala fora da região da plotagem. Usar tck = 0,01 e mgp = C
(1, -1.5,0) para marcas de escala internos.
xaxs = "R" yaxs = "i" estilos de eixo para o X e y eixos, respectivamente. Com estilos " Eu" ( interna) e " r"
(O padrão) marcas de escala sempre caem dentro do intervalo de dados, no entanto estilo " r"
deixa uma pequena quantidade de espaço nas bordas. (S tem outros estilos não implementadas em
R.)
A figura é típico
região Plot
1.5
0.0
y
mai [2]
−1.5
−3.0
mai [1] X
Margem
Mar = c (4, 2, 2, 1)
Igual a mai, excepto a unidade de medida é linhas de texto.
estragar e mai são equivalentes, no sentido de que a fixação de um muda o valor do outro. Os valores padrão escolhido para
este parâmetro são muitas vezes demasiado grande; a margem direita é raramente necessário, e nem é a margem superior se
nenhum título está sendo usado. As margens inferior e esquerda deve ser grande o suficiente para acomodar o eixo e carrapatos
etiquetas. Além disso, o padrão é escolhido independentemente do tamanho da superfície do dispositivo: por exemplo, utilizando o pós-escrito
()
driver com o altura = 4 argumento vai resultar em uma trama que é cerca de 50% a menos margem estragar
ou mai são definidas explicitamente. Quando vários números estão em uso (veja abaixo), as margens são reduzidas, no entanto, isso pode não ser
suficiente quando muitas figuras compartilham a mesma página.
Capítulo 12: procedimentos gráficos 73
omi [4]
mfg = c (3,2,3,2)
omi [1]
mfrow = c (3,2)
mfcol = c (3, 2)
mfrow = c (2, 4)
Definir o tamanho de uma matriz figura múltipla. O primeiro valor é o número de linhas; o segundo é o número
de colunas. A única diferença entre estes dois parâmetros é que definição mfcol provoca figuras a serem
preenchidos por coluna; mfrow enche de linhas. O layout na Figura poderia ter sido criado através da criação mfrow
= c (3,2); a figura mostra a página após quatro parcelas foram desenhados.
Definir qualquer um destes pode reduzir o tamanho da base de símbolos e texto (controlada pela
nominal ( "CEX") e o pointsize do dispositivo). Numa disposição com exactamente duas linhas e colunas do tamanho
de base é reduzido por um factor de 0,83: se existem três ou mais de qualquer das filas ou colunas, o factor de
redução é de 0,66.
mfg = c (2, 2, 3, 2)
Posição da figura atual em um ambiente figura múltipla. Os primeiros dois números são a linha e a coluna da
figura corrente; os dois últimos são o número de linhas e colunas na matriz figura múltipla. Defina este
parâmetro para saltar entre os números na matriz. Você ainda pode usar valores diferentes para os dois últimos
números do que a
verdade valores para números desigual porte na mesma página.
Fig = c (4, 9, 1, 4) / 10
Posição do número atual na página. Os valores são as posições da esquerda, direita, parte inferior e bordas superior,
respectivamente, como uma percentagem da página medido a partir do canto inferior esquerdo. O valor exemplo seria para
uma figura no canto inferior direito da página. Defina este parâmetro para o posicionamento arbitrário de números dentro de
uma página. Se você deseja adicionar uma figura para uma página atual, o uso nova = TRUE bem como (ao contrário S).
margens exteriores são particularmente úteis para títulos de página-sábio, etc. O texto pode ser adicionado às margens exteriores, com a mtexto
() função com argumento exterior = VERDADEIRO. Não há margens externas por padrão, no entanto, assim que você deve criá-los explicitamente
usando oma ou omi.
arranjos mais complicados de várias figuras podem ser produzidos pela tela dividida()
e layout () funções, assim como pela grade e treliça ( https://CRAN.R-project.org/ pacote = reticulado) pacotes.
R pode gerar gráficos (de diferentes níveis de qualidade) em quase qualquer tipo de monitor ou dispositivo de impressão. Antes que isto
possa começar, no entanto, R precisa ser informado que tipo de dispositivo que está lidando. Isso é feito por iniciar um driver do dispositivo. A
finalidade de um controlador de dispositivo é para converter as instruções gráficas de R ( “desenhar uma linha”, por exemplo) para uma
forma que o dispositivo particular pode compreender.
Os drivers de dispositivo são iniciados por chamar uma função de driver de dispositivo. Há uma tal função para cada driver de
dispositivo: Tipo ajuda (dispositivos) Para obter uma lista de todos eles. Por exemplo, emitir o comando
> pós-escrito ()
faz com que todos os futuros saída de gráficos para serem enviados para a impressora em formato PostScript. Alguns drivers de dispositivo commonlyused são:
janelas()
Para uso no Windows
pós-escrito ()
Para imprimir em impressoras PostScript, ou a criação de arquivos PostScript gráficos.
pdf () Produz um arquivo PDF, que também podem ser incluídos em arquivos PDF.
PNG () Produz um arquivo de bitmap PNG. (Nem sempre está disponível: ver a sua página de ajuda.)
JPEG () Produz um arquivo de bitmap JPEG, melhor usado para imagem parcelas. (Nem sempre está disponível: ver a sua página de ajuda.)
Quando tiver terminado com um dispositivo, certifique-se de terminar o driver de dispositivo, emitindo o comando
> dev.off ()
Isto garante que o dispositivo termina limpa; por exemplo, no caso de dispositivos impressos isso garante que cada página
é concluído e foi enviado para a impressora. (Isso acontecerá automaticamente no final normal de uma sessão.)
irá produzir um arquivo contendo código PostScript para uma figura cinco polegadas de altura, talvez para inclusão em um
documento. É importante notar que, se o arquivo nomeado no comando já existe,
Capítulo 12: procedimentos gráficos 75
ele será substituído. Este é o caso, mesmo que o arquivo só foi criado anteriormente na mesma sessão R.
Muitos usos de saída PostScript será incorporar a figura em outro documento. Isso funciona melhor quando encapsulado PostScript
é produzida: R sempre produz uma saída conformant, mas apenas marca a saída como tal, quando o OneFile = FALSE argumento
é fornecido. Esta notação incomum deriva de S-compatibilidade: ele realmente significa que a saída será uma única página (que
é parte da especificação EPSF). Assim, para produzir um lote de uso de inclusão algo como
Os principais comandos usados para operar com vários dispositivos, e seus significados são os seguintes:
X11 () [UNIX]
Windows () win.printer
() win.metafile ()
[Janelas]
pós-escrito () pdf ()
PNG ()
JPEG ()
TIFF ()
bitmap ()
. . . Cada nova chamada para uma função de driver de dispositivo abre um novo dispositivo gráfico, alargando assim a uma
lista de dispositivos. Este dispositivo torna-se o dispositivo atual, ao qual será enviada saída gráfica.
dev.list ()
Retorna o número eo nome de todos os dispositivos ativos. O dispositivo na posição 1 na lista é sempre o dispositivo
nulo que não aceita gráficos comandos em tudo.
dev.next ()
dev.prev ()
Retorna o número eo nome do dispositivo gráfico ao lado, ou anterior para o dispositivo atual, respectivamente.
dev.set (que é = k)
Pode ser usado para mudar o atual dispositivo gráfico ao que na posição k da lista de dispositivos. Retorna o
número e rótulo do dispositivo.
dev.off ( k)
Rescindir o dispositivo gráfico no ponto k da lista de dispositivos. Para alguns dispositivos, tal como
pós-escrito dispositivos, este será ou imprimir o arquivo imediatamente ou corretamente completar o arquivo para impressão
posterior, dependendo de como o dispositivo foi iniciado.
Capítulo 12: procedimentos gráficos 76
fechada, de modo que as acções de extremidade, tais como cópias em papel de impressão, são realizadas imediatamente.
graphics.off ()
Terminar todos os dispositivos gráficos na lista, exceto o dispositivo nulo.
http://www.ggobi.org/
e estes podem ser acedidos a partir de R através do pacote rggobi ( https://CRAN.R-project.org/ pacote = rggobi), descrito em http://www.ggobi.org/
Além disso, o pacote RGL ( https://CRAN.R-project.org/package=rgl) fornece maneiras de interagir com parcelas em 3D, por
exemplo de superfícies.
77
13 Pacotes
Todas as funções R e conjuntos de dados são armazenados em pacotes. Apenas quando um pacote é carregado estão seu conteúdo
disponível. Isto é feito tanto para a eficiência (a lista completa levaria mais memória e levaria mais tempo para procurar do que um
subconjunto), e para ajudar os desenvolvedores de pacotes, que são protegidos de confrontos com nome outro código. O processo de
pacotes em desenvolvimento é descrito em “Criando pacotes R” em Escrevendo extensões de R. Aqui, vamos descrevê-los do ponto de
vista de um usuário.
Para ver quais pacotes são instalados em seu site, emitir o comando
> biblioteca()
sem argumentos. Para carregar uma embalagem particular (por exemplo, a boot ( https: //CRAN.R-project. org / pacote =
inicialização) pacote contendo funções de Davison & Hinkley (1997)), utiliza-se
> procurar()
para exibir a lista de pesquisa. Alguns pacotes podem ser carregados mas não está disponível na lista de pesquisa (ver Seção 13.3
[namespaces], página 78): estes serão incluídos na lista dada pela
> loadedNamespaces ()
Para ver uma lista de todos os tópicos de ajuda disponíveis em um pacote instalado, use
> help.start ()
para iniciar o sistema de ajuda HTML, e em seguida, navegue para a lista de pacotes no Referência
seção.
R FAQ contém uma lista de CRAN pacotes atuais no momento da liberação, mas a coleção de pacotes disponíveis muda com
muita freqüência.
Capítulo 13: Pacotes 78
13.3 Namespaces
pacotes têm namespaces, que fazer três coisas: eles permitem que o escritor pacote para esconder funções e dados que são
destinados apenas para uso interno, evitam funções de quebrar quando um usuário (ou outro escritor do pacote) escolhe um nome
que se choca com um no pacote, e eles fornecer um modo para se referir a um objecto dentro de um determinado pacote.
Por exemplo, t () é a função de transposição em R, mas os usuários podem definir a sua própria função chamada t. Namespaces
prevenir definição do usuário de tomar precedência, e quebrando todas as funções que tenta transpor uma matriz.
Há dois operadores que trabalham com namespaces. O operador dois pontos duplo :: seleciona definições de um
namespace particular. No exemplo acima, a função de transposição estará sempre disponível como de base :: t, porque ela é
definida na base pacote. Somente funções que são exportados a partir do pacote pode ser recuperada desta maneira.
O operador de triplo-cólon ::: pode ser visto em alguns lugares no código R: ele atua como o operador dois-pontos, mas
também permite o acesso a objetos escondidos. Os usuários são mais propensos a usar o getAnywhere () função, que procura
vários pacotes.
Os pacotes são frequentemente inter-dependentes, e uma carga pode causar outros para ser carregada automaticamente. Os operadores
do cólon descritos acima também fará com que o carregamento automático do pacote associado. Quando pacotes com namespaces são
carregados automaticamente eles não são adicionados à lista de pesquisa.
79
14 instalações de SO
R tem instalações muito extensas para acessar o sistema operacional em que ele está sendo executado: isto permite que ele seja usado como uma
linguagem de script e que a capacidade é muito usado por si só R, por exemplo, para instalar pacotes.
Porque próprios scripts de R precisa trabalhar em todas as plataformas, um esforço considerável tem ido para fazer as instalações de
script como plataforma independente quanto possível.
Para criar um arquivo (Vazio) ou diretório, o uso File.Create ou dir.create. ( Estes são os análogos dos utilitários POSIX tocar
e Mkdir.) Para arquivos e diretórios temporários no diretório de sessão de R ver tempfile.
Os ficheiros podem ser removidos por qualquer file.remove ou desvincular: este último pode remover árvores de diretório.
Para listagens de diretórios uso list.files ( também disponível como dir) ou list.dirs. Estes podem selecionar arquivos usando uma expressão
regular: para selecionar por wildcards uso Sys.glob.
Muitos tipos de informações sobre um caminho de arquivo (incluindo, por exemplo, se é um arquivo ou diretório) pode ser encontrado informações do
arquivo.
Existem várias maneiras de descobrir se um arquivo 'existe' (um arquivo pode existir no sistema de arquivos e não ser
visível para o usuário atual). Existem funções File.Exists, file.access e file_test
com várias versões deste teste: file_test é uma versão do POSIX teste comando para aqueles familiarizados com shell script.
arquivos Escolhendo pode ser feito de forma interativa, file.choose: a porta do Windows tem as funções mais versáteis escolher
os arquivos e choose.dir e existem funções semelhantes no tcltk
pacote: tk_choose.files e tk_choose.dir.
Funções file.show e file.edit irá exibir e editar um ou mais arquivos de uma forma adequada à porta R, utilizando as
instalações de um console (como Rgui no Windows ou R.app no MacOS), se um está em uso.
Há algum suporte para ligações no sistema de arquivos: ver funções file.link e Sys.readlink.
Com poucas exceções, R conta com as funções de sistema operacional subjacente para manipular filepaths. Alguns aspectos desta estão
autorizados a depender do sistema operacional, e fazer, mesmo para baixo para a versão do OS. Existem padrões POSIX de como sistemas
operacionais deve interpretar filepaths e muitos usuários R assumir conformidade POSIX, mas o Windows não pretensão de ser complacente e
outros sistemas operacionais pode ser menos do que completamente compatível.
• sistemas de ficheiros POSIX são caso-sensível, por isso foo.png e Foo.PNG são diferentes arquivos. No entanto, os padrões em Windows e
MacOS são para ser maiúsculas e minúsculas, e sistemas de ficheiros FAT (vulgarmente utilizados no armazenamento removível) não são
normalmente caso-sensível (e todos os filepaths pode ser mapeado para minúsculas).
• Quase todos os serviços do sistema operacional do Windows' apoiar o uso de barra ou barra invertida como separador de caminho de
arquivo, e R converte as exceções conhecidas à forma exigida pelo Windows.
Capítulo 14: instalações OS 80
• O comportamento de filepaths com uma barra final é dependente do sistema operacional. Esses caminhos não são válidos no Windows e
não deve ser esperado para trabalhar. POSIX-2008 exige tais caminhos para corresponder apenas diretórios, mas versões anteriores
permitiu-lhes também corresponder arquivos. Assim, eles devem ser evitados.
• Várias barras em filepaths como / abc // def são válidos em sistemas de arquivos POSIX e tratado como se houvesse apenas um
golpe. Eles são usualmente aceito por funções do sistema operacional Windows. No entanto, barras duplas líderes pode ter um
significado diferente.
• Windows permite filepaths contendo unidades e em relação ao diretório atual em uma unidade,
por exemplo d: foo / barra refere-se a d: / a / b / c / foo / barra se o diretório atual na unidade d: é / abc.
Pretende-se que estes trabalhos, mas o uso de caminhos absolutos é mais seguro. Funções basename e dirname selecionar partes
de um caminho de arquivo: a maneira recomendada para montar um caminho de arquivo a partir de componentes é caminho de arquivo. Função
pathexpand faz 'expansão til', substituindo valores para diretórios home (do usuário atual, e talvez aqueles de outros usuários).
Em sistemas de arquivos com links, um único arquivo pode ser referido por muitos filepaths. Função
normalizePath vai encontrar um caminho de arquivo canônico.
Windows tem os conceitos de curto ( '8.3') e nomes de arquivos longos: normalizePath irá retornar um caminho absoluto
usando nomes de arquivo longos e shortPathName irá retornar uma versão usando nomes curtos. Este último não contém espaços
e usa barra invertida como separador, por isso às vezes é útil para exportar nomes de R.
Arquivo permissões são um tópico relacionado. R tem suporte para os conceitos POSIX de
leitura / gravação / permissão de execução para proprietário / grupo / all mas isso pode ser apenas parcialmente suportado no sistema de
arquivos, assim, por exemplo apenas no Windows arquivos somente leitura (para a conta executando a sessão R) são reconhecidas. Access
Control Lists (ACLs) são empregados em vários sistemas de arquivos, mas não têm uma norma acordada e R não tem instalações para
controlá-los. Usar Sys.chmod para alterar as permissões.
sistema se comporta de forma diferente no Windows a partir de outros sistemas operacionais (porque a chamada de API C desse nome faz).
Em outra parte ele invoca um shell para executar o comando: a porta do Windows de R tem uma função Concha fazer isso.
Para saber se o sistema operacional inclui um comando, o uso Sys.which, que tenta fazer isso de uma forma multi-plataforma (infelizmente,
não é um serviço padrão do sistema operacional).
Função shQuote citá filepaths conforme necessário para comandos no sistema operacional atual.
O tipo de compressão que tem sido apoiado por mais longo que é gzip compressão, e que continua a ser um bom
compromisso geral. Arquivos compactados pelo Unix cedo comprimir utilitário também pode ser lido, mas estes estão se
tornando raros. Duas outras formas de compressão, aqueles do
Capítulo 14: instalações OS 81
bzip2 e xz utilidades também estão disponíveis. Estes geralmente alcançar maiores taxas de compressão (dependendo do arquivo, muito
mais elevados) em detrimento de descompressão mais lento e compressão muito mais lento.
Há alguma confusão entre xz e lzma compressão (ver https: //en.wikipedia. org / wiki / Xz e https://en.wikipedia.org/wiki/LZMA):
R pode ler arquivos compactados pela maioria das versões de ambos.
arquivos de ficheiros são únicos arquivos que contêm uma coleção de arquivos, as mais comuns sendo 'tarballs' e arquivos zip como
usado para distribuir pacotes de R. R pode listar e descompactar ambos (ver funções
untar e descompactar) e criar tanto (para fecho eclair com a ajuda de um programa externo).
82
A sessão seguinte se destina a apresentar-lhe algumas características do ambiente R, utilizando-os. Muitas características do
sistema será estranho e intrigante no início, mas esta confusão irá desaparecer em breve.
Comece R adequadamente para sua plataforma (ver Anexo B [Invocando R], página 85).
O programa R começa, com uma bandeira.
(No código de R, a linha do lado esquerdo não irá ser mostrado, para evitar confusão.)
help.start ()
Inicie a interface HTML a ajuda on-line (usando um navegador web disponível na sua máquina). Você deve
explorar brevemente as características deste mecanismo com o mouse. Minimizar a janela de ajuda e passar
para a próxima parte.
trama (x, y)
Traçar os pontos no plano. A janela de gráficos aparecerá automaticamente.
attach (simulado)
Faça as colunas no quadro de dados visível como variáveis.
trama (x, y)
enredo ponto padrão.
A próxima seção irá olhar para os dados do experimento clássico de Michelson para medir a velocidade da luz. Este
conjunto de dados está disponível no Morley objeto, mas vamos lê-lo para ilustrar a read.table função.
filepath <- system.file ( "dados", "morley.tab", pacote = "conjuntos de dados") filepath Obter o caminho
para o arquivo de dados.
file.show (caminhoficheiro)
Opcional. Olhe para o arquivo.
anexar (mm)
Faça o quadro de dados visível na posição 3 (o padrão).
plot (Experimento, Velocidade, principal = "Velocidade de Dados Light", XLAB = "Experiment No.")
Compare os cinco experimentos com boxplots simples.
separar () RM
(fm, FM0)
Limpar antes de prosseguir.
Vamos agora olhar para algumas características mais gráficas: contorno e imagem parcelas.
contorno (x, y, f)
contorno (x, y, f, NLEVELS = 15, adicione = TRUE)
Faça um mapa de contorno de f; adicionar mais linhas para mais detalhes.
par (oldpar)
. . . e restaurar os velhos parâmetros gráficos.
imagem (x, y, f)
imagem (x, y, fa)
Faça algumas parcelas de imagem de alta densidade, (do qual você pode obter cópias impressas, se quiser),
. . .
trama (w, = C xlim (-1,1), ylim = c (-1,1), PCH = "+", XLAB = "x", ylab = "Y") linhas (z) Todos os pontos estão
dentro do círculo unitário, mas a distribuição não é uniforme.
RM (th, w, z)
Limpar novamente.
q () Saia do programa de R. Você será perguntado se deseja salvar o espaço de trabalho R, e para uma sessão
exploratória como esta, você provavelmente não quer salvá-lo.
85
Apêndice B R Invocando
Usuários de R no Windows ou MacOS deve ler a seção específica do OS em primeiro lugar, mas o uso de linha de comando também é suportado.
A maioria das opções controlar o que acontece no início e no final de uma sessão de R. O mecanismo de inicialização é a
seguinte (ver também a ajuda on-line para o tópico ' Comece "Para mais informações, e a seção abaixo para alguns detalhes
específicos do Windows).
• A não ser que -- no-environ foi dado, R procura por arquivos do usuário e do site para processar para definir variáveis de
ambiente. O nome do arquivo de site é aquele apontado pela variável de ambiente R_ENVIRON; se este é definida, R_HOME
/ etc / Renviron.site é usada (se existir). O arquivo de usuário é aquele apontado pela variável de ambiente R_ENVIRON_USER
Se isso for definido; caso contrário, os arquivos. Renviron no atual ou no diretório home do usuário (nessa ordem) são
procurados. Esses arquivos devem conter linhas da forma ' name = valor '. (Vejo
ajudar ( "Startup") para uma descrição precisa.) Variáveis que você pode querer definir incluem R_ PAPERSIZE ( o tamanho de
papel padrão), R_PRINTCMD ( o comando de impressão padrão) e R_LIBS
(Especifica a lista de R árvores biblioteca procurou add-on pacotes).
• Então R procura o perfil de inicialização em todo o site, a menos que a opção de linha de comando - nosite-file foi dado. O
nome deste arquivo é retirado o valor do R_PROFILE
variável de ambiente. Se essa variável é definida, o padrão R_HOME / etc / Rprofile.site é utilizada, se esta existir.
• Então, a menos que - não-init-file foi dado, R procura por um perfil de usuário e fontes de TI. O nome deste arquivo é
retirado da variável de ambiente R_PROFILE_USER; Se não estiver definida, um arquivo chamado. Rprofile no diretório
atual ou no diretório home do usuário (nessa ordem) é procurado.
• Ele também carrega um espaço de trabalho salvo de arquivo. RDATA no diretório atual, se houver um (a menos - no-restaurar
ou - no-restore-dados foi especificada).
• Finalmente, se uma função. Primeiro() existe, ele é executado. Esta função (bem como. Último()
que é executada no final da sessão R) pode ser definido nos perfis de inicialização apropriadas, ou residir. RDATA.
Além disso, há opções para controlar a memória disponível para o processo de I (consulte a ajuda on-line para o tópico ' Memória '
Para maiores informações). Os usuários normalmente não precisa usar estes a menos que eles estão tentando limitar a quantidade de
memória usada por R.
-- Socorro
- - versão
informações sobre a versão de impressão na saída padrão e sai.
Apêndice B: Invocando R 86
- - encoding = enc
Especificar a codificação a ser assumida para a entrada a partir da consola ou stdin. Isto precisa de ser conhecido para uma
codificação iconv: ver a sua página de ajuda. (- codificação enc também é aceito). A entrada é re-codificado para a região do R
está em execução e precisa ser representável na codificação deste último (assim por exemplo, você não pode re-codificar
texto grego em uma localidade francesa a menos que essa localidade usa a codificação UTF-8 ).
Rhome Imprimir o caminho para o diretório “home” R para a saída padrão e sai. Além do shell script front-end e a
página do manual, a instalação R coloca tudo (executáveis, pacotes, etc.) para este diretório.
-- Salve •
- - não-save
Controle se os conjuntos de dados devem ser salvos ou não no final da sessão R. Se nem é dado em uma
sessão interativa, o usuário é solicitado para o comportamento desejado quando terminar a sessão com q (); em
uso não interactivo um destes deve ser especificado ou implícita por alguma outra opção (ver abaixo).
- - no-environ
Não ler qualquer arquivo de usuário para definir variáveis de ambiente.
- - não-site-arquivo
Não leia o perfil de todo o site na inicialização.
- - não-init-file
Não leia o perfil do usuário na inicialização.
- - restaurar
- - no-restaurar
- - no-restore-dados
Controlar se as imagens guardadas (arquivo. RDATA no diretório onde R foi iniciado) devem ser restaurados na
inicialização ou não. O padrão é restaurar. (- no-restaurar
implica todo o específico - no-restore- * opções).
- - no-restore-história
Controlar se o arquivo de histórico (normalmente arquivo. Rhistory no diretório onde R foi iniciado, mas pode ser
definido pela variável de ambiente R_HISTFILE) devem ser restaurados na inicialização ou não. O padrão é
restaurar.
- - no-Rconsole
(Somente para Windows) impedir o carregamento do Rconsole arquivo na inicialização.
- - baunilha
Combine - sem salvar, --no-environ, --no-site-arquivo, --no-init-file e - norestore. No Windows, isso também inclui - no-Rconsole.
- f Arquivo
- - file = Arquivo
(não Rgui.exe) Pegar as informações de Arquivo: '-' significa stdin. implica - não-save a não ser que
- • Salve • foi definido. Em um Unix-alike, metacaracteres shell deve ser evitado em
Arquivo ( mas espaços são permitidos).
- e expressão
(não Rgui.exe) Usar expressão como uma linha de entrada. Um ou mais - e opções podem ser usadas, mas não em
conjunto com - f ou - Arquivo. implica - não-save a não ser que -- Salve • foi definido. (Existe um limite de 10.000 bytes
sobre o comprimento total de expressões utilizadas neste modo. Expressões contendo espaços ou metacharacters
concha terá de ser citado.)
Apêndice B: Invocando R 87
- - no-readline
(UNIX apenas) Desligue a edição de linha de comando via Leia a linha. Isso é útil ao executar R de dentro
Emacs usando o ESS ( “Emacs Fala Estatísticas”) pacote. Consulte o Anexo C [O editor de linha de comando],
página 92, para mais informações. edição de linha de comando está habilitado para uso interativo padrão (ver - interativo).
Esta opção também afeta til expansão: veja a ajuda para path.expand.
- - min-vsize = N
- - min-nsize = N
Para uso perito só: definir os tamanhos iniciais de gatilho para a recolha de lixo amontoado de vector (em bytes) e células
(cons número), respectivamente. sufixo ' M 'Especifica megabytes ou milhões de células, respectivamente. Os padrões
são 6Mb e 350k, respectivamente, e também pode ser definido por variáveis de ambiente R_NSIZE e R_VSIZE.
- - max =-ppsize N
Especificar o tamanho máximo da pilha de protecção como ponteiro N Localizações. O padrão é 10000, mas
pode ser aumentada para permitir cálculos grandes e complicadas que ser feito. Atualmente, o valor máximo
aceito é 100000.
- - max-mem-size = N
(Somente para Windows) Especifique um limite para a quantidade de memória para ser usado tanto para
objetos R e áreas de trabalho. Esta é definida por defeito para a menor a quantidade de RAM física na máquina
e para 32 bits R, 1,5Gb 1, e deve estar entre 32Mb e o máximo permitido nessa versão do Windows.
- - quieto
-- silencioso
- - escravo Faça R correr o mais silenciosamente possível. Esta opção se destina a apoiar programas
que usar R para calcular resultados para eles. Isso implica -- quieto e - sem salvar.
- - interativo
(Apenas UNIX) afirmam que R realmente está sendo executada de forma interactiva, mesmo se a entrada foi
redireccionada: usar se a entrada é de uma FIFO ou tubo e alimentado a partir de um programa interactivo. (O padrão é
deduzir que R está sendo executado de forma interativa se e somente se stdin está ligado a um terminal ou Pty.) usando - e, -f
ou - Arquivo afirma uso não-interativo, mesmo se - interativo é dada.
- - ess (Somente para Windows) Set Rterm -se para uso por R-inferior-mode em ESS, incluindo afirmando uso
interativo (sem o editor de linha de comando) e sem buffering de stdout.
- - verboso
Imprimir mais informações sobre o progresso, e em determinada opção set do R verboso para
VERDADE. código R utiliza esta opção para controlar a impressão de mensagens de diagnóstico.
- - depurador = nome
- d nome (Apenas UNIX) Executar R através depurador nome. Para a maioria dos depuradores (as exceções são
valgrind e as versões recentes do GDB), outras opções de linha de comando são ignorados, e deve
preferivelmente ser dada ao iniciar o R executável de dentro do depurador.
- - gui = tipo
- g tipo (Somente UNIX) Use tipo como interface gráfica do usuário (note que isso também inclui gráficos interativos).
Atualmente os valores possíveis para tipo está ' X11 '(O padrão) e,
1 2.5Gb em versões do Windows que suportam 3Gb por processo e têm o apoio habilitado: veja a rw-FAQ
providenciou que ' Tcl / Tk 'Suporte está disponível,' Tk '. (Para back-compatibilidade " x11 'E' tk 'São aceitos.)
- - arch = nome
(Apenas UNIX) Execute o sub-arquitectura especificada.
- - args Esta bandeira não faz nada exceto causa o resto da linha de comando a ser ignorado: isso pode ser útil para
recuperar valores a partir dele com commandArgs (verdadeiro).
Note-se que a entrada e saída pode ser redirecionada da maneira usual (usando '<' e '>'), mas o limite de comprimento de linha
de 4095 bytes ainda se aplica. mensagens de aviso e erro são enviadas para o canal de erro ( stderr).
O comando R CMD permite a invocação de várias ferramentas que são úteis em conjunto com R, mas não destinados a ser
chamado “directamente”. A forma geral é
LOTE Execute R na modalidade de grupo. Corre R --restore --save possivelmente com mais opções (ver
? LOTE).
COMPILAR (Apenas UNIX) compilar C, C ++, Fortran. . . arquivos para uso com R.
Rdconv
Rd2txt Converter o formato Rd para vários outros formatos, incluindo HTML, L UMA TEX, texto simples e extrair os
exemplos. Rd2txt pode ser usado como uma abreviação para Rd2conv -t txt.
javareconf
(Unix apenas) Atualize as variáveis de configuração Java
abrir (Somente para Windows) Abra um arquivo via associações de arquivos do Windows'
texify (Somente para Windows) processo (La) TeX arquivos com arquivos de estilo de R Utilize
para obter informações de uso para cada uma das ferramentas acessíveis via R CMD interface.
Apêndice B: Invocando R 89
Além disso, você pode usar as opções - = Arco, --no-environ, --no-init-file, --no-site-
Arquivo e - baunilha entre R e CMD: estas afetam todos os processos R executados pelas ferramentas. (Aqui
- - baunilha é equivalente a -- no-environ --no-site-arquivo --no-init-file). No entanto, note que R CMD não de si mesmo usar todos
os arquivos R inicialização (em particular, nem usuário nem local Renviron
arquivos), e todos os processos de I executados por estas ferramentas (excepto LOTE) usar -- no-restauração. Mais uso - baunilha e
assim invocar nenhum arquivo R inicialização: as exceções atuais são Instalar, remover Sweave e shlib ( que usa - não-site-arquivo
--no-init-file).
para qualquer outro executável cmd no caminho ou dado por um caminho absoluto: este é útil ter o mesmo ambiente como R ou os
comandos específicos executados sob, por exemplo, para executar ldd ou
pdflatex. No Windows cmd pode ser um um arquivo de lote ou executável, ou se tem extensão. sh
ou. pl o intérprete apropriado (se disponível) é chamado para executá-lo.
O procedimento de inicialização no Windows é muito semelhante ao que sob UNIX, mas as referências ao diretório home
'precisam ser esclarecidos, como este não é sempre definido no Windows. Se a variável de ambiente R_USER é definido, que dá
ao diretório home. Em seguida, se a variável de ambiente CASA é definido, que dá ao diretório home. Após essas duas
configurações controláveis pelo usuário, R tenta encontrar definido sistema diretórios home. Ele primeiro tenta usar o diretório do
Windows "pessoal" (normalmente Meus documentos em versões recentes do Windows). Se isso falhar, e variáveis de ambiente HOMEDRIVE
e HOMEPATH são definidos (e eles normalmente são) estes definir o diretório home. Falhando todos aqueles, o diretório home é
levado para ser o diretório de partida.
Você precisa se certificar variáveis que tanto o ambiente TMPDIR, TMP e TEMP são ou não configurado ou um deles aponta
para um lugar válido para criar arquivos e diretórios temporários.
As variáveis de ambiente podem ser fornecidos como ' name = valor 'pares na linha de comando. Se há um argumento final. RDATA
( em qualquer caso) é interpretado como o caminho para o espaço de trabalho para ser restaurado: implica - restaurar e define o
diretório de trabalho para o pai do arquivo chamado. (Este mecanismo é utilizado para arrastar e largar e associação com
arquivo RGui.exe,
mas também trabalha para Rterm.exe. Se o arquivo nomeado não existir, ele define o diretório de trabalho se existe o diretório
pai.)
- - MDI
- - SDI
- - no-MDI Controlar se Rgui funcionará como um programa de MDI (com janelas de criança múltipla
dentro de uma janela principal) ou um aplicativo SDI (com múltiplas janelas de nível superior para o console, gráficos e
pager). O cenário de linha de comando substitui a configuração do usuário de Rconsole Arquivo.
- - depurar Ativar o item de menu “Break para debugger” em Rgui, e desencadear uma pausa para o
depurador durante o processamento da linha de comando.
No Windows com R CMD você também pode especificar o seu próprio. bastão, .Exe, .sh ou. pl Arquivo. Ele será executado sob o
intérprete apropriado (Perl para. pl) com diversas variáveis de ambiente ajustado adequadamente, incluindo R_HOME, R_OSTYPE,
PATH, BSTINPUTS e TEXINPUTS. Por exemplo, se você já tem latex.exe em seu caminho, em seguida,
será executado L UMA TEX em mydoc.tex, com o caminho para Rs share / texmf macros anexado ao TEXINPUTS.
(Infelizmente, isso não ajudar com a construção MiKTeX de L UMA TEX, mas R CMD mydoc texify
vai trabalhar nesse caso.)
O procedimento de inicialização no MacOS é muito semelhante ao que sob UNIX, mas R.app não fazer uso de argumentos de
linha de comando. O diretório home "é o um dentro do R.framework, mas a inicialização e diretório de trabalho atual está definido
como o diretório home do usuário, a menos de um diretório de inicialização diferente é dada na janela de Preferências acessível a
partir de dentro da GUI.
no fundo ou como uma utilização trabalho em lotes instalações específicas do SO para fazê-lo: por exemplo, na maioria dos shells em sistemas operacionais
Você pode passar parâmetros para scripts de via argumentos adicionais na linha de comando: por exemplo (onde a exata
citando necessário dependerá do shell em uso)
vai passar argumentos para um script que pode ser recuperado como um vetor de caracteres por
Este é mais simples pelo front-end alternativa RSCRIPT, que pode ser invocado por
e isso também pode ser usado para escrever arquivos de script executáveis como (pelo menos no Unix-alikes e, em alguns conchas do Windows)
Se este é inserido em um arquivo de texto runfoo e este é feito executável (por chmod 755 runfoo), ele pode ser invocado para
diferentes argumentos por
Para mais opções, veja ajudar ( "RSCRIPT"). Este escreve saída de R de stdout e stderr, e isso pode ser redirecionado da
maneira usual para o shell executando o comando.
Se você não quiser codificar o caminho para RSCRIPT mas tê-lo em seu caminho (que é normalmente o caso para um R instalado,
exceto no Windows, mas os usuários por exemplo MacOS pode precisar adicionar
/ / Local / bin usr para o seu caminho), uso
Pelo menos em Bourne e festança conchas, o #! mecanismo faz não permitir argumentos extras, como #!
/ Usr / bin / env RSCRIPT --vanilla.
Uma coisa a considerar é o que stdin () refere-se a. É comum para escrever scripts R com segmentos como
3,10 3,40 3,40 2,90 3,70 3,70 2,80 2,50 2,40 2,40 2,70 2,20
3,37 3,03 3,03 5,28 28,95 3,77 3,40 2,20 3,50 3,60 3,70 3,70
e stdin () refere-se ao arquivo de script para permitir tal uso tradicional. Se você quiser se referir ao processo de stdin, usar " stdin" como
um Arquivo conexão, por exemplo, Scan ( "stdin", ...).
Outra maneira de escrever arquivos de script executáveis (sugerido por Fran Cois Pinard) é a utilização de um Aqui
documento gostar
# ! / Bin / sh
[Variáveis de ambiente pode ser definido aqui] R --slave [outras
opções] << EOF
EOF
mas aqui stdin () refere-se à fonte do programa e " stdin" não será utilizável.
roteiros curtos podem ser passados para RSCRIPT na linha de comando através da a - e bandeira. (Roteiros vazios não são aceitos.)
Note-se que em um Unix-alike o nome do arquivo de entrada (como foo.R) não deve conter espaços nem metacaracteres shell.
92
C.1 Preliminares
Quando o GNU Leia a linha biblioteca está disponível no momento R é configurado para compilação em UNIX, um editor de linha de
comando embutido permitindo recordação, edição e re-envio de comandos anteriores é utilizado. Note-se que outras versões do Leia a
linha existe e pode ser usado pelo editor de linha de comando embutido: Isso costumava acontecer no MacOS.
Ela pode ser desativada (útil para uso com ESS 1) usando a opção de inicialização - no-readline.
A versões Windows do R ter um pouco mais simples edição de linha de comando: ver ' Console ' debaixo de ' Socorro "Menu da
GUI, eo arquivo README.Rterm para-line comando de edição sob Rterm.exe.
Quando se utiliza R com GNU 2 Leia a linha capacidades, as funções descritas abaixo estão disponíveis, bem como os outros
(provavelmente) documentado em homem readline ou informações readline em seu sistema.
Muitos destes usar tanto caracteres de controle ou meta. caracteres de controlo, tal como Controlo-m,
são obtidos mantendo o CTRL para baixo enquanto você pressiona o m chave, e são escritos como Cm abaixo. caracteres, tais como
meta Meta-b, são digitados pressionando META 3 e pressionando b, e escrito como Mb na sequência. Se seu terminal não tem uma META chave
habilitado, você ainda pode digitar caracteres Meta usando seqüências de dois caracteres começando com ESC. Assim, para introduzir Mb,
você pode digitar SEBC. o ESC sequências de caracteres também são permitidas em terminais com teclas Meta reais. Note que caso é
significativo para caracteres Meta.
Algumas, mas não todas as versões 4 do Leia a linha reconhecerá o redimensionamento da janela do terminal de modo que este é melhor evitar.
pressionando o RET comando a qualquer momento faz com que o comando para ser re-submetidos. Outras ações
texto Cr Encontrar o último comando com o texto corda nele. Este pode ser cancelada CG ( e
em algumas versões do R de Cc).
Na maioria dos terminais, você também pode usar a cima e para baixo teclas de seta em vez de Cp e Cn,
respectivamente.
Cb Volte um personagem.
Cf Vá em frente um personagem.
Na maioria dos terminais, você também pode usar as teclas de seta esquerda e direita em vez de Cb e Cf,
respectivamente.
Edição e re-submissão
texto Inserir texto no cursor.
RET Re-enviar o comando para R. A final RET termina a sequência de edição de linha de comando. o Leia a linha teclas
pode ser personalizado da maneira usual através da um ~ /. inputrc file. These customizations can be conditioned on
$if R
"\C-xd": "q(’no’)\n" $endif
94
! ?
!..................................................9 ? 4
!= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 ?? 4
% ^
%*% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
^ 8
%o% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
&
&..................................................9 9
&&. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 40
* ~
* .................................................. 8
~ 52
+
A
+.................................................. 8
ab ne 66
ace 61
– add1 56
anova 54 55
- .................................................. 8
aov 55
ape m 21
. a ay 20
as da a ame 27
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
as vec o 24
. First . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
a ach 28
. Last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
a 14
a bu es 14
avas 61
/ ax s 67
/..................................................8
B
:
boxp o 37
:..................................................8
b eak 41
::. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
buo 61
78
< C
< 9 c 7 10 24 27
<< 47 cb nd 24
<= 9 coe 54
coe c en s 54
con ou 65
= con as s 53
== 9 cop o 64
cos 8
c ossp od 19 22
> cu 25
C 53
> 9
>= 9
Appendix D: Function and variable index 95
D K
data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 ks es 36
data.frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
density . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
det . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 L
detach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 egend 66
determinant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 eng h 8 13
dev.list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 eve s 16
dev.next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 nes 66
dev.off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 s 26
dev.prev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 m 54
dev.set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 me 61
deviance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 oca o 68
diag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 oess 61
dim
d m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
og 8
do cha 65
qs 61
d op1 56
s 23
E M
ecd 35 ma s 61
ed 32 max 8
e gen 23 mean 8
e se 40 me hods 49
E o 55
mn 8
examp e 4
mode 13
exp 8
N
F
NaN 9
ac o 16 NA 9
FALSE 9 nco 22
venum 34 nex 41
o 40
nm 59 60 61
o mu a 54
n me 61
unc on 42
n m nb 59
F 9
n ow 22
G O
ge Anywhe e 49
op m 59
ge S3me hod 49
o de 8
gm 57
o de ed 17
ou e 21
H
he p 4 P
he p sea ch 4
pa s 64
he p s a 4
pa 68
hs 34 64
pas e 10
pd 74
I pe sp 65
po 54 63
den y 68 pmax 8
40 pm n 8
e se 40 png 74
mage 65 po n s 66
s na 9
po ygon 66
s nan 10
pos sc p 74
p ed c 54
J p n 54
p od 8
peg 74
Appendix D: Function and variable index 96
Q summa y 34 54
svd 23
qqline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35, 64
qqnorm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35, 64
qqplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 T
qr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
21
quartz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
es 37
ab e 20 25
R an 8
app y 16
range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 ex 66
rbind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 e 67
read.table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 ee 62
rep. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 T 9
repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 TRUE 9
resid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
residuals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
rlm
m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 U
m 6 unc ass 14
upda e 55
S
scan 31 V
sd 17 va 8 17
sea ch 29 va es 38
seq 8 vcov 55
shap o es 36 vec o 7
sn 8
s nk 5
so ve 22 W
so 8 wh e 41
sou ce 5 w cox es 38
sp 40 w ndows 74
sq 8
s em 34
s ep 54 56
X
sum 8 X11 74
97
A K
Accessing builtin datasets . . . . . . . . . . . . . . . . . . . . . . . . 31 Additive models . . . . . .Ko
. . .mogo
. . . . .ov
. . Sm
. . . .nov
. . . .es
. 36
. . . . . . . . . 61 Analysis of variance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Arithmetic functions and
operators . . . . . . . . . . . . . . . . 7 Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Assignment . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
L
Leas squa es ng 23 L nea equa ons
22 L nea mode s 54 L s s
26 Loca app ox ma ng eg ess ons 61 Loops and
cond ona execu on 40
B
Binary operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Box plots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
M
C
Ma ces 18 Ma x mu p ca on
Character
Charac
Cha ac e vec
vectors.
o s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 C
Classes
asses . . . . . . . . . . 22
. . .Max
. . . .mum
. . . . .ke
. . .hood
. . . . . . . . . . . . . . 14
14, 61 M ss ng va ues
48 Conca ena ng s s 27 Con as s
9 M xed mode s 61
53 Con o s a emen s 40 CRAN
77 Cus om z ng he env onmen 48
N
Named a gumen s 43 Namespace
D 78 Non nea eas squa es 59
Da a ames 27 De au va ues
43 Dens y es ma on 34 De e m nan s
23 D ve ng npu and ou pu 5 Dynam c g aph cs
76 O
Ob ec o en a on 48 Ob ec s
13 One and wo samp e es s 36 O de ed ac o s
16 53 Ou e p oduc s o a ays 21
E
E genva ues and e genvec o s 23 Emp ca CDFs
35
P
F Packages 2 77 P obab y d s bu ons
Fac o s 16 53 Fam es 33
57 Fo mu ae 51
Q
G QR decompos on 23 Quan e quan e p o s
35
Gene a zed nea mode s 56 Gene a zed anspose o an
a ay 21 Gene c unc ons 48 G aph cs
dev ce d ve s 74 G aph cs pa ame e s
68 G ouped exp ess ons 40 R
Read ng da a om es 30 Recyc ng u e
7 20 Regu a sequences 8 Remov ng ob ec s
6 Robus eg ess on 61
I
ndex ng o and by a ays 18 ndex ng vec o s
10
Appendix E: Concept index 98
S U
Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Search path . . . . .Updating
. . . . . . . fitted
. . . . .models
. . . . . ................................ . . . . . . . . . . . 55
29 Shapiro-Wilk test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Singular value decomposition . . . .
. . . . . . . . . . . . . . . . . 23 Statistical models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Student’s t test . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 37 V
Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
W
T Wilcoxon
W coxon test
es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Wo
Workspace
kspace . . . . . . . . . . . . . . . . . . . . . .
Tabulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Tree-based models 5
. .W
. . . .ng
. . .unc
. . . ons
................. 42
. . . 62
99
Appendix F References
D. M. Bates and D. G. Watts (1988), Nonlinear Regression Analysis and Its Applications. John Wiley & Sons, New York.
Richard A. Becker, John M. Chambers and Allan R. Wilks (1988), The New S Language. Chapman & Hall, New York. This book
is often called the “ Blue Book ”. John M. Chambers and Trevor J. Hastie eds. (1992), Statistical Models in S. Chapman & Hall,
New York. This is also called the “ White Book ”. John M. Chambers (1998) Programming with Data. Springer, New York. This is
also called the “ Green Book ”.
A. C. Davison and D. V. Hinkley (1997), Bootstrap Methods and Their Applications, Cambridge University Press.
Annette J. Dobson (1990), An Introduction to Generalized Linear Models, Chapman and Hall, London.
Peter McCullagh and John A. Nelder (1989), Generalized Linear Models. Second edition, Chapman and Hall, London. John A.
Rice (1995), Mathematical Statistics and Data Analysis. Second edition. Duxbury Press, Belmont, CA.