Forma "correta" e/ou mais "elegante"...

Gostaria de alguma dica (sugestão) para escrever de forma "correta" e/ou mais "elegante". Segue abaixo minha antiga programação no sas e no R (tentei anteriomente dentro de um for (loop), mas fica muito demorado). Att, Mauricio M. Oliveira Programação no SAS: if TP_PRODUTO='RM' then pai=COMPRESS('RM'||Cod_Rebanho||racapai||ano||nomepai,' '); else if livropai^=' ' & registropa^=' ' & registropa^='0' & registropa^='-' then pai=COMPRESS(livropai||'.'||registropa,' '); else if nomepai=' ' & tatuagempa=' ' then do; pai=COMPRESS(Cod_Rebanho||raca||ano||"DESC",' '); TP_PRODUTO='RM'; end; else pai=COMPRESS(Cod_Rebanho||racapai||tatuagempa||nomepai,' '); Script no R: Base[,"PAI"][Base[,"TP_PRODUTO"] == "RM"] <- paste("RM",Base[,"Cod_Rebanho"][Base[,"TP_PRODUTO"] == "RM"], Base[,"RACAPAI"] [Base[,"TP_PRODUTO"] == "RM"], Base[,"anoN"][Base[,"TP_PRODUTO"] == "RM"], Base[,"NOMEPAI"][Base[,"TP_PRODUTO"] == "RM"], sep="") Base[,"PAI"][Base[,"TP_PRODUTO"] != "RM" & Base[,"LIVROPAI"]!="" & Base[,"REGISTROPA"]!="" & Base[,"REGISTROPA"]!="0" & Base[,"REGISTRO"]!= "-"] <- paste(Base[,"LIVROPAI"][Base[,"TP_PRODUTO"] != "RM" & Base[,"LIVROPAI"]!="" & Base[,"REGISTROPA"]!="" & Base[,"REGISTROPA"]!="0" & Base[,"REGISTRO"]!="-"], ".", Base[,"REGISTROPA"][Base[,"TP_PRODUTO"] != "RM" & Base[,"LIVROPAI"]!="" & Base[,"REGISTROPA"]!="" & Base[,"REGISTROPA"]!="0" & Base[,"REGISTRO"]!="-"], sep="") Base[,"PAI"][Base[,"TP_PRODUTO"] != "RM" & Base[,"NOMEPAI"]=="" & Base[,"TATUAGEMPA"]==""] <- paste(Base[,"Cod_Rebanho"] [Base[,"TP_PRODUTO"] != "RM" & Base[,"NOMEPAI"]=="" & Base[,"TATUAGEMPA"]==""], Base[,"RACA"][Base[,"TP_PRODUTO"] != "RM" & Base[,"NOMEPAI"]=="" & Base[,"TATUAGEMPA"]==""],"DESC", sep="")

Código não reproduzível. ========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br skype: walmeszeviani twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================

Em anexo fragmento do arquivo de dados Abaixo script Base <- data.frame(read.csv("Base.csv", sep=",", header=TRUE)) Base[,"PAI"] <- NA Base[,"PAI"][Base[,"TP_PRODUTO"] == "RM"] <- paste("RM",Base[,"Cod_Rebanho"][Base[,"TP_PRODUTO"] == "RM"], Base[,"RACAPAI"][Base[,"TP_PRODUTO"] == "RM"], Base[,"anoN"][Base[,"TP_PRODUTO"] == "RM"], Base[,"NOMEPAI"][Base[,"TP_PRODUTO"] == "RM"], sep="") Base[,"PAI"][Base[,"TP_PRODUTO"] != "RM" & Base[,"LIVROPAI"]!="" & Base[,"REGISTROPA"]!="" & Base[,"REGISTROPA"]!="0" & Base[,"REGISTRO"]!="-"] <- paste(Base[,"LIVROPAI"][Base[,"TP_PRODUTO"] != "RM" & Base[,"LIVROPAI"]!="" & Base[,"REGISTROPA"]!="" & Base[,"REGISTROPA"]!="0" & Base[,"REGISTRO"]!="-"], ".", Base[,"REGISTROPA"][Base[,"TP_PRODUTO"] != "RM" & Base[,"LIVROPAI"]!="" & Base[,"REGISTROPA"]!="" & Base[,"REGISTROPA"]!="0" & Base[,"REGISTRO"]!="-"], sep="") Base[,"PAI"][Base[,"TP_PRODUTO"] != "RM" & Base[,"NOMEPAI"]=="" & Base[,"TATUAGEMPA"]==""] <- paste(Base[,"Cod_Rebanho"][Base[,"TP_PRODUTO"] != "RM" & Base[,"NOMEPAI"]=="" & Base[,"TATUAGEMPA"]==""], Base[,"RACA"][Base[,"TP_PRODUTO"] != "RM" & Base[,"NOMEPAI"]=="" & Base[,"TATUAGEMPA"]==""],"DESC", sep="") Em 12 de dezembro de 2012 11:22, Walmes Zeviani <walmeszeviani@gmail.com>escreveu:
Código não reproduzível.
========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br skype: walmeszeviani twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================
_______________________________________________ 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.
participantes (2)
-
Mauricio Morgado Oliveira
-
Walmes Zeviani