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

Arquivos CSV em R

Como ferramenta estatística profissional, o R, se não puder importar e exportar dados manualmente, tornar-se-ia inútil, então o R suporta a obtenção em lote de dados de formatos de arquivo de armazenamento de tabelas populares (por exemplo, CSV, Excel, XML, etc.).

Interação de tabelas CSV

CSV (Comma-Valores Separados, CSV, às vezes também chamado de Valores Separados por Caracteres, pois o caractere de separação pode não ser vírgula), é um formato de arquivo de armazenamento de tabelas muito popular, adequado para armazenar dados de tamanho médio ou pequeno.

Devido ao suporte de maioria dos softwares a esse formato de arquivo, ele é frequentemente usado para armazenamento e interação de dados.

O CSV é essencialmente um texto, seu formato de arquivo é extremamente simples: os dados são salvos linha por linha em texto, cada registro é separado por delimitadores em campos, e cada registro tem a mesma sequência de campos.

A seguir está um arquivo sites.csv simples (armazenado na mesma pasta do programa de teste):

id,name,url,likes
1,Google,www.google.com,111
2,w3codebox,pt.oldtoolbag.com,222
3,Taobao,www.taobao.com,333

O CSV usa vírgula para dividir colunas, se os dados contiverem vírgula, deve-se usar aspas duplas para incluir todo o bloco de dados.

Atenção:Os textos que contêm caracteres não-ingleses precisam ser salvos com o código correto, pois muitos computadores usam o UTF-8 código, então uso UTF-8 salvo.

Atenção: O arquivo CSV precisa conter uma linha em branco no final, caso contrário, a execução do programa emitirá uma mensagem de aviso.

Aviso:
Mensagem de aviso:
  linha final incompleta encontrada por readTableHeader no 'sites.csv'

Ler arquivo CSV

A seguir, podemos usar a função read.csv() para ler os dados do arquivo CSV:

data <- read.csv("sites.csv", encoding="UTF-8)
print(data)

Se não configurarmos o atributo encoding, a função read.csv() usará o código de caracteres padrão do sistema operacional para leitura, se você usar o sistema operacional Windows em chinês e não tiver configurado o código de caracteres padrão do sistema, o código de caracteres padrão deve ser GBK. Portanto, por favor, tente uniformizar o código de caracteres para evitar erros.

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

  id name       url likes
1  1 Google www.google.com   111
2  2 w3codebox pt.oldtoolbag.com   222
3  3 Taobao www.taobao.com   333

A função read.csv() retorna um data frame, podemos facilitar o processamento de dados estatísticos, neste exemplo, veremos o número de linhas e colunas:

data <- read.csv("sites.csv", encoding="UTF-8)
print(is.data.frame(data)) # Verificar se é um data frame
print(ncol(data)) # Número de colunas
print(nrow(data)) # Número de linhas

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

[1] TRUE
[1] 4
[1] 3

A seguir está a estatística da caixa de dados onde o campo likes é o maior:

data <- read.csv("sites.csv", encoding="UTF-8)
# Dados com o maior número de likes
like <- max(data$likes)
print(like)

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

[1] 333

Também podemos especificar condições de busca, semelhante a uma cláusula WHERE do SQL, para consultar dados, e precisamos usar funções como subset()

Aqui está um exemplo de busca por likes 222 Para os dados:

data <- read.csv("sites.csv", encoding="UTF-8)
# likes é 222 dos dados
retval <- subset(data, likes == 222)
print(retval)

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

  id name       url likes
2  2 w3codebox pt.oldtoolbag.com   222

Atenção:As condições de igualdade são usadas com ==.

Para usar múltiplas condições, utilize o separador &; aqui está um exemplo de busca por likes maiores que 1 name é w3Os dados do codebox:

data <- read.csv("sites.csv", encoding="UTF-8)
# likes é maior que 1 name é w3Os dados do codebox
retval <- subset(data, likes > 1 & name=="w3codebox")
print(retval)

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

  id name       url likes
2  2 w3codebox pt.oldtoolbag.com   222

para salvar como arquivo CSV

O R pode ser usado write.csv()  A função salva os dados em arquivo CSV.

Continuando com o exemplo acima, vamos salvar os dados com likes 222 Os dados são salvos em w3O arquivo codebox.csv:

data <- read.csv("sites.csv", encoding="UTF-8)
# likes é 222 dos dados
retval <- subset(data, likes == 222)
# Escrever novo arquivo
write.csv(retval,"w3codebox.csv")
newdata <- read.csv("w3codebox.csv")
print(newdata)

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

 X id name       url likes
1 2  2 w3codebox pt.oldtoolbag.com   222

X Do conjunto de dados newper, pode ser removido através do parâmetro row.names = FALSE:

data <- read.csv("sites.csv", encoding="UTF-8)
# likes é 222 dos dados
retval <- subset(data, likes == 222)
# Escrever novo arquivo
write.csv(retval,"w3codebox.csv", row.names = FALSE)
newdata <- read.csv("w3codebox.csv")
print(newdata)

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

  id name       url likes
1  2 w3codebox pt.oldtoolbag.com   222

Após a execução, podemos ver w3O arquivo codebox.csv foi gerado com sucesso.