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@univasf.edu.br>
Para: r-br@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@gmail.com                                     
============================================
_______________________________________________
R-br mailing list
R-br@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.