[R-br] obter data.frames com mesmas dimensões

Heloíse Pavanato helopavanato em gmail.com
Sábado Junho 25 18:24:25 BRT 2016


Oi Jônatan,

Era exatamente este data.frame final que eu queria obter.
Não vi diferença entre o uso da left_join e full_join, na verdade.

Muito obrigada pela sua ajuda!

Heloise.

Em 25 de junho de 2016 17:43, Jônatan <jdtatsch em gmail.com> escreveu:

> Heloíse,
> a função left_join() do pacote dplyr acho que serve para fazer o que você
> quer. Ela é um caso particular da merge(). Veja a diferença da full_join()
> para a left_join(), de repente a última sirva dependendo se você tem mais
> amostras.
> ## Load data
> print(load('dataC.inia.rda'))
>
> ## Building matrix for replicates
> # Sampling 1
> rep1C <- dataC.inia[dataC.inia$replicate == 1,]
> str(rep1C)
> # Sampling 2
> rep2C <- dataC.inia[dataC.inia$replicate == 2,]
> str(rep2C)
> all(names(rep1C) %in% names(rep2C))
> # valores únicos das 4 primeiras vars
> lapply(rep1C[ ,1:4], function(x)unique(x))
> lapply(rep2C[ ,1:4], function(x)unique(x))
> # combinando dados
> library(dplyr)
> comb_repC <- left_join(rep1C[, 1:4], rep2C)
> # comb_repC2 <- full_join(rep1C[, 1:4], rep2C)
> comb_repC
> # verificação
> dim(rep1C)
> dim(rep2C)
> dim(comb_repC)
> # dim(comb_repC2)
> lapply(rep1C[ ,1:4], function(x) unique(x))
> lapply(comb_repC[ ,1:4], function(x) unique(x))
>
>
>
> 2016-06-25 16:50 GMT-03:00 Heloíse Pavanato <r-br em listas.c3sl.ufpr.br>:
>
>> Oi Leonardo,
>>
>> Obrigada pela sua ajuda.
>>
>> Coloquei o arquivo rda no Dropbox. Veja se consegue abrir agora.
>>
>> https://www.dropbox.com/s/wg5zmqud4q62yng/dataC.inia.rda?dl=0
>>
>> Eu tenho duas ocasiões amostrais que deveriam ser equivalentes. Porém, na
>> primeira (rep1C) tenho mais meses amostrados. Gostaria de preencher a
>> segunda ocasião (rep2C) com os meses faltantes para que fique igual ao
>> primeiro data.frame.
>>
>> Estava tentando usar a função "rbind.fill" do pacote "plyr" mas sem
>> sucesso.
>>
>> Segue CMR atualizado:
>>
>> #---------------------------------------------------------------------
>> ## Building matrix for replicates
>> # Sampling 1
>> rep1C <- dataC.inia[dataC.inia$replicate == 1,]
>>
>> table(rep1C$area, rep1C$season, rep1C$transect)
>> dim(rep1C)
>>
>> # Sampling 2
>> rep2C <- dataC.inia[dataC.inia$replicate == 2,]
>> table(rep2C$area, rep2C$season, rep2C$transect)
>> dim(rep2C)
>>
>> comb.rep <- rbind.fill(rep1C, rep2C)
>> dim(comb.rep[comb.rep$replicate == '2',])
>>
>> #---------------------------------------------------------------------
>>
>> Obrigada,
>>
>> Heloise
>>
>>
>>
>> Em 25 de junho de 2016 16:32, Leonardo Fontenelle via R-br <
>> r-br em listas.c3sl.ufpr.br> escreveu:
>>
>>> Tentei baixar o arquivo, mas o que chegou foi um arquivo vazio (zero
>>> byte).
>>>
>>> Se o que você quer realmente é esticar um data.frame, você pode fazer
>>> algo assim:
>>>
>>> df <- data.frame(x = rnorm(10), y = rbinom(10, 1, 0.5))
>>> df[11:20, ] <- NA
>>> df
>>>
>>> Só que... Estou curioso para saber que tipo de problema você pretende
>>> resolver com isso.
>>>
>>> Att,
>>>
>>> Leonardo Ferreira Fontenelle <http://lattes.cnpq.br/9234772336296638>
>>>
>>>
>>> Em Sáb 25 jun. 2016, às 12:20, Heloíse Pavanato via R-br escreveu:
>>>
>>> Boa tarde,
>>>
>>> Eu tenho dois data.frames com número de linhas diferentes (nrow(rep1C) =
>>> 73, nrow(rep2C) = 45), e colunas iguais (19).
>>> Eu quero que ambos data.frames fiquem com a mesma dimensão. Para isso,
>>> rep2C deve ser aumentado com "NA". Porém, quero manter os mesmos índices
>>> "area", "season", "month" para ambos data.frames.
>>>
>>> Alguém tem alguma idéia de que função usar?
>>>
>>> Segue CMR:
>>>
>>> #----------------------------------------------------------------------
>>>
>>> ## Load data
>>> # file: *https://www.datafilehost.com/d/64a6a8d9
>>> <https://www.datafilehost.com/d/64a6a8d9>*
>>> load('dataC.inia.rda')
>>>
>>> ## Building matrix for replicates
>>> # Sampling 1
>>> rep1C <- dataC.inia[dataC.inia$replicate == 1,]
>>>
>>> table(rep1C$area, rep1C$season, rep1C$transect)
>>> dim(rep1C)
>>>
>>> # Sampling 2
>>> rep2 <- dataC.inia[dataC$replicate == 2,]
>>> table(rep2$area, rep2$season, rep2$transect)
>>> dim(rep2)
>>>
>>>  #----------------------------------------------------------------------
>>>
>>> Obrigada pela ajuda!
>>>
>>> Heloise
>>> *_______________________________________________*
>>> R-br mailing list
>>> R-br em listas.c3sl.ufpr.br
>>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
>>> código mínimo reproduzível.
>>>
>>>
>>>
>>> _______________________________________________
>>> R-br mailing list
>>> R-br em listas.c3sl.ufpr.br
>>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
>>> código mínimo reproduzível.
>>>
>>
>>
>> _______________________________________________
>> R-br mailing list
>> R-br em listas.c3sl.ufpr.br
>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
>> código mínimo reproduzível.
>>
>
>
>
> --
> ###############################################################
> ##  Jônatan Dupont Tatsch
> ##  Professor do Departamento de Física
> ##  Centro de Ciências Exatas e Naturais (CCNE)
> ##  Universidade Federal de Santa Maria - UFSM
> ##  Faixa de Camobi, Prédio 13 - Campus UFSM - Santa Maria, RS, Brasil -
> 97105-900
> ##  Telefone: +55(55)33012083
> ##  www.ufsm.br/meteorologia
> ###############################################################
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160625/2f377601/attachment.html>


Mais detalhes sobre a lista de discussão R-br