English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Gramática Básica do R

O aprendizado de um novo idioma geralmente começa com a execução do programa "Hello, World!". O código do programa "Hello, World!" em R é o seguinte:

myString- "Hello, World!"
print(myString)

Os exemplos acima atribuem a string "Hello, World!" à variável myString e, em seguida, usam a função print() para exibir.

Atenção:A atribuição de valores no idioma R usa o sinal de seta esquerda '<='- símbolo, embora algumas versões mais novas também suportem o sinal de igual '=' =.

Variável

O nome de variável válido no idioma R é composto por letras, números, pontos '.' ou sublinhados _

O nome da variável começa com uma letra ou ponto.

Nome da variávelCorreto?Razão
nome_variável2.CorretoComeça com um caractere, e é composto por letras, números, sublinhados _ e pontos '.'
nome_variável%ErroO símbolo '%' é ilegal
2nome_variávelErroNão pode começar com um número

.nome_variável,

nome.variável

CorretoPode começar com o ponto '.', mas atenção, o ponto '.' no início não pode ser seguido por um número
.2nome_variávelErroO ponto '.' no início não pode ser seguido por um número
_nome_variávelErroNão pode começar com o sublinhado _

Atribuição de variáveis

A atribuição de valores na versão mais recente do idioma R pode usar o sinal de seta esquerda '<='-、igual a、seta para a direita -> Atribuição:

# Usando o sinal de igual = para atribuição
> var.1 = c(0,1,2,3)           
> print(var.1)
[1] 0 1 2 3
# Usando o sinal de seta para a esquerda <-Atribuição
> var.2 <- c("learn","R")   
> print(var.2)
[1] "learn" "R"
    
# Usando o sinal de seta para a direita <- Atribuição
> c(TRUE,1) -> var.3
> print(var.3)
[1] 1 1

Para verificar as variáveis definidas, podemos usar ls() Função:

> print(ls())
[1] "var.1" "var.2" "var.3"

Para excluir variáveis, podemos usar rm() Função:

> rm(var.3)
> print(ls())
[1] "var.1" "var.2"
>

No capítulo anterior, aprendemos como instalar o ambiente de programação do R, e a seguir, apresentaremos a programação interativa e de script de arquivo do R.

Programação interativa

Precisamos apenas executar o comando R na linha de comando para entrar na janela de programação interativa:

R

Após executar este comando, será aberto o interpretador do R, onde podemos digitar o código após o símbolo >.

Os comandos interativos podem ser encerrados digitando q():

> q()
Salvar imagem do ambiente de trabalho? [y/n/c]: y

Script de arquivo

O sufixo de arquivo do R é .R.

A seguir, criaremos um w3codebox-test.R  arquivo: o código é o seguinte:

w3codebox-test.R  arquivo

myString <- "w3codebox"
print ( myString )

A seguir, usaremos o Rscript na janela de linha de comando para executar o script:

Rscript w3codebox-test.R

Os resultados da saída são os seguintes:

[1] "w3codebox"

Entrada e saída

Saída print()

A função print() é a função de saída do R.

Como outras linguagens de programação, o R suporta a saída de números, caracteres, etc.

A expressão de saída é muito simples:

print("w3codebox")
print(123)
print(3e2)

Resultado da Execução:

[1] "w3codebox"
[1] 123
[1] 300

O R é uma linguagem interpretada, como o node.js e o Python, então geralmente podemos usar o R da mesma forma que uma linha de comando.

Se digitarmos um valor em uma linha, o R também o padronizará e mostrará diretamente:

> 5e-2
[1] 0.05

A função cat()

Se precisarmos concatenar a saída dos resultados, podemos usar a função cat():

> cat(1, "Adição", 1, "Igual a", 2, '\n')
1 Adição 1 Igual a 2

A função cat() adiciona automaticamente espaços entre cada dois elementos concatenados.

Saída de conteúdo para arquivo

Os métodos de saída para arquivos no R são muito variados e convenientes.

A função cat() suporta a saída direta de resultados para um arquivo:

cat("w3codebox", file="/Users/w3codebox/w3codebox-test/r_test.txt")

Esta frase não gerará resultado no console, mas "w3codebox" exportar para "/Users/w3codebox/w3codebox-test/o arquivo "r_test.txt".

O parâmetro file pode ser um caminho absoluto ou relativo, é recomendável usar o caminho absoluto, o formato de caminho do Windows é D:\\r_test.txt.

cat("w3codebox", file="D:\\r_test.txt")

Atenção: essa operação é uma operação de "escrever sobre", use com cautela, pois ela vai limpar os dados do arquivo original. Se você quiser "adicionar", não esqueça de configurar o parâmetro append:

cat("GOOGLE", file="/Users/w3codebox/w3codebox-test/r_test.txt", append=TRUE)

Após a execução do código acima, o conteúdo do arquivo r_test.txt será como follows:

w3codeboxGOOGLE

sink()

A função sink() pode escrever o texto da saída do console diretamente para o arquivo:

sink("/Users/w3codebox/w3codebox-test/r_test.txt")

Após a execução dessa instrução, qualquer saída do console será escrita para o arquivo "/Users/w3codebox/w3codebox-test/o arquivo "r_test.txt", a saída do console não será exibida.

Atenção: essa operação é uma operação de "escrever sobre", ela vai limpar o conteúdo do arquivo existente.

Se ainda quiser manter a saída do console, pode configurar o atributo split:

sink("/Users/w3codebox/w3codebox-test/sink("r_test.txt", split=TRUE)

Se você quiser cancelar a saída para o arquivo, pode chamar sink() sem parâmetros:

sink()
sink("r_test.txt", split=TRUE) # A saída para o console também
for (i in 1:5) 
    print(i)
sink() # Cancelar a saída para o arquivo
sink("r_test.txt", append=TRUE) # Não saia para o console, escreva no arquivo
print("w3codebox")

Executar o código acima, um arquivo r_test.txt será criado no diretório atual, abri o conteúdo do arquivo como follows:

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] "w3codebox"

A saída do console é:

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5

Entrada de texto

Pode nos lembrar do scanf do C, do java.util.Scanner do Java, se você tiver estudado Python, pode estar mais familiarizado com a função input(). Mas o R, como um linguagem interpretada, é mais semelhante a alguns linguagens de script de terminal (como bash ou PowerShell), que são baseadas em sistemas de comando, precisam de entrada e saída e não são adequadas para desenvolvimento de aplicações orientadas ao usuário (porque elas são usadas pelos próprios usuários finais). Portanto, o R não tem uma função específica para ler do console, a entrada de texto sempre está sendo feita no R.

Ler texto a partir de arquivo

O R tem uma variedade de funções de leitura de arquivos, mas se você quiser simplesmente ler o conteúdo de um arquivo como uma string, pode usar a função readLines:

readLines("/Users/w3codebox/w3codebox-test/r_test.txt")

Resultado da Execução:

[1] "w3codeboxGOOGLE"

O resultado da leitura é duas strings, que são os dois conteúdos das duas linhas contidas no arquivo lido.

Atenção:Cada linha do arquivo de texto lido (incluindo a última linha) deve ter um caractere de nova linha no final, caso contrário, será gerado um erro.

Outras maneiras

Além de simplesmente inserir e exibir texto, o R também oferece muitos métodos de entrada e saída de dados. Uma das facilidades do R é que pode salvar estruturas de dados diretamente para arquivos, e suporta salvamento em formatos como CSV, planilhas Excel, e suporta leitura direta. Isso é sem dúvida muito conveniente para os pesquisadores matemáticos. Mas essas funcionalidades não têm grande impacto no aprendizado do R, e serão mencionadas em capítulos futuros.

Diretório de Trabalho

Para operações de arquivo, precisamos definir o caminho do arquivo. O R pode obter e definir o diretório de trabalho atual usando as seguintes duas linhas de código:

  • getwd() : Obter diretório de trabalho atual

  • setwd() : Definir diretório de trabalho atual

# Diretório de trabalho atual
print(getwd())
# Definir diretório de trabalho atual
setwd("/Users/w3codebox/w3codebox-test2")
# Ver diretório de trabalho atual
print(getwd())

O resultado da execução do código acima é:

[1] "/Users/w3codebox/w3codebox-test"
[1] "/Users/tianqixin/w3codebox-test2"