[R-br] Modificar valores de dataframe com base em outro dataframe

Elias T. Krainski eliaskrainski em yahoo.com.br
Terça Dezembro 13 14:06:38 BRST 2011


 d1 <- data.frame(snp1=c("A","A","A","A","T"), snp2=c("A","G","G","A","G"), 

                             snp3=c("C","T","C","C","T"), snp4=c("T","G","G","T","T"))


 d2 <- data.frame(snp=paste("snp",1:4,sep=""), anc=c("A","G","C","T"))

 sapply(1:ncol(d1), function(i) 1-(as.character(d1[,i])==as.character(d2[i,2])))


Elias T. Krainski


>________________________________
> De: João José de Simoni Gouveia <joao.gouveia em univasf.edu.br>
>Para: r-br em listas.c3sl.ufpr.br 
>Enviadas: Sábado, 10 de Dezembro de 2011 22:21
>Assunto: [R-br] Modificar valores de dataframe com base em outro dataframe
> 
>Prezados,
>
>Possuo dois dataframes (nomeados aqui de 1 e 2). Preciso modificar os valores do dataframe1 com base no dataframe2.
>Mais precisamente:
>Se os valores da coluna snp1 (dataframe1) forem iguais ao valor da linha snp1 (dataframe2), preciso converter estes valores para 0 (zero), caso contrário o valor deve ser convertido para 1 (um).
>Alguém tem alguma dica?
>Att
>JJ
>Abaixo uma ilustração do que eu tenho
>DataFrame 1 -->
>   snp1 snp2 snp3 snp4
>1     A    A    C    T
>2     A    G    T    G
>3     A    G    C    G
>4     A    A    C    T
>5     T    G    T    T
>
>DataFrame 2 -->
>   snp       anc
>1 snp1         A
>2 snp2         G
>3 snp3         C
>4 snp4         T
>
>E o que eu preciso ter:
>Dataframe final -->
>   snp1 snp2 snp3 snp4
>1     0    1    0    0
>2     0    0    1    1
>3     0    0    0    1
>4     0    1    0    0
>5     1    0    1    0
>
>-- 
>============================================
>João José de Simoni Gouveia                                                    
>Médico Veterinário, Msc.
>Doutorando em Zootecnia - PDIZ (UFC/UFPB/UFRPE)                                                          
>Professor Assistente I - Colegiado Acadêmico de Zootecnia    
>Universidade Federal do Vale do São Francisco (UNIVASF)      
>----------------------------------------------------------------------------------------
>Endereço: UNIVASF (Campus Ciências Agrárias)                    
>Rodovia BR 407, Km 12, Lote 543                                            
>Projeto de Irrigação Senador Nilo Coelho, s/nº-C1                  
>Petrolina, PE - CEP 56.300-000                                                
>Telefone: (87)3986-3800/3804-3801
>Skype: joao_jose_de_simoni_gouveia
>E-mail alternativo: jjsgouveia em gmail.com                                      
>============================================
>_______________________________________________
>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.
>
>
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20111213/7ca47fe5/attachment.html>


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