B.2 Exportando e recuperando objetos do R no formato textual

B.2.1 dput(), dget, dump e source.

Uma função útil para compartilhar dados com alguém que precisa reproduzi-los é a função dput() (que pode ser traduzido como "despejar"). Ela escreve uma representação textual de um objeto R que pode ser escrita em um arquivo. Para recriar o objeto basta usar a função dget().

x
# representação textual do objeto x
dput(x)
# salva representação textual de x em um arquivo temporário, você pode substituir tempfile() por um caminho de seu computador, p.ex. "~/Downloads"
(aq_dest_file <- tempfile())
(x_dest_file <- tempfile())
dput(x, file = x_dest_file)
# recuperando x a partir do arquivo
y <- dget(x_dest_file)
# alterar valores de y
y <- y[, 3:4] - sqrt(2)
y
# verificar existência de x e y
ls()
# listando variáveis que começam com x ou y
ls(pattern = "^[xy]")
# salvando mais de um objeto em um arquivo
(xy_dest_file <- tempfile())
dump(ls(pattern = "^[xy]"), file = xy_dest_file)
# vamos apagar x e y do espaco de trabalho
rm(x, y)
# x e y não existem mais
ls()
# recuperando os objetos x e y salvos em xy.R
source(xy_dest_file)
ls()
x
y

Portanto diferente da escrita dos dados em si para um arquivo texto as funções dump() e dput() armazenam os dados e os metadados, assim outro usuário não precisa especificá-los novamente. Assim o usuário que recebe a saída do dput() em um arquivo, pode recriar os dados pelo comando dget("nomedoarquivo").

# representação textual de um data.frame
dados3est <- structure(
  list(
    dates = c("2013-01-01", "2013-01-01", "2013-01-01"),
    cidade = c("SM", "SS", "CV"),
    temperatura = c(31L, 35L, 21L),
    chuva = c(3L, 10L, 14L)
  ),
  .Names = c("dates", "cidade", "temperatura", "chuva"),
  class = "data.frame",
  row.names = c(NA, -3L)
)
dados3est

Vantagens:

  • armazena os dados e os metadados
  • recuperação rápida e fácil dos dados

Desvantagens:

  • armazenamento de dados nesse formato não é muito eficiente em termos de espaço em disco
  • pouca legibilidade dos dados

Esse procedimento é geralmente recomendado para fornecer pequenas amostras de dados (e-mails por exemplo)