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

Jônatan jdtatsch em gmail.com
Sábado Junho 25 17:43:02 BRT 2016


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/5a28a820/attachment.html>


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