<div dir="ltr">OK Bárbara,<div><br></div><div>De novo, por falta do CMR, a gente tateia o entendimento, <i>mas</i> quer me parecer que o que desejas pode ser obtido com uma chamada assim:</div><div><br></div><div>> type13 <- <font face="monospace">with(dados_completo, subset(type12, Stature <= 50))</font></div><div><font face="monospace"><br></font></div><div><font face="arial, sans-serif"><u style="">Embora</u> eu 'não entenda' o item type12, e imagino que a coluna a ser usada aí deveria ser a de idades, talvez</font>‽</div><div><span style="font-family:arial,sans-serif"><br></span></div><div><span style="font-family:arial,sans-serif">HTH </span></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jun 3, 2022 at 11:55 AM Bárbara Mazetti Nascimento por (R-br) <<a href="mailto:r-br@listas.c3sl.ufpr.br">r-br@listas.c3sl.ufpr.br</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US" style="overflow-wrap: break-word;"><div class="gmail-m_1630041514595016854WordSection1"><p class="MsoNormal">Oi Cesar!<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Obrigada pela resposta!<u></u><u></u></p><p class="MsoNormal"><span lang="PT-BR">Acho que agora entendi porque não dá certo. Eu não consegui escrever no script o que eu quero e ele entende como um vetor de caracteres.<u></u><u></u></span></p><p class="MsoNormal"><span lang="PT-BR"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="PT-BR">Meu banco de dados é um arquivo csv com uma coluna com a identificação de animal e depois 19 colunas com notas para avaliação visual de 19 características. <u></u><u></u></span></p><p class="MsoNormal"><span lang="PT-BR" style="font-family:"Courier New"">Sdtypetrait </span><span lang="PT-BR">é um vetor com o nome da coluna dessas características que eu quero chamar no código. Então minha ideia era que o código </span><span lang="PT-BR" style="font-family:"Courier New"">type13 <- subset(type12, <b>sdtypetrait [index.typet]</b> <= 50)</span><span lang="PT-BR"><u></u><u></u></span></p><p class="MsoNormal"><span lang="PT-BR">se transformasse em : </span><span lang="PT-BR" style="font-family:"Courier New"">type13 <- subset(type12, <b>Stature</b> <= 50)</span><span lang="PT-BR"><u></u><u></u></span></p><p class="MsoNormal"><span lang="PT-BR">Então no meu exemplo Stature é uma das notas que eu estou avaliando e eu usei o subset para ficar somente com animais com nota menor ou igual a 50. Provavelmente o que está acontecendo é que meu código indica que Stature é um valor e não uma coluna, como eu gostaria.<u></u><u></u></span></p><p class="MsoNormal"><span lang="PT-BR">Como eu vou avaliar as características separadamente, eu preciso editar um banco individual para cada uma delas para não perder muitas informações sem necessidade.<u></u><u></u></span></p><p class="MsoNormal"><span lang="PT-BR"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="PT-BR">Aproveitando a resposta, será que isso seria possível, chamar as colunas a partir de um vetor? Minha ideia era otimizar a criação dos bancos ao invés de editar ele várias vezes.<u></u><u></u></span></p><p class="MsoNormal"><span lang="PT-BR"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="PT-BR">De qualquer forma, eu agradeço a ajuda! Pelo menos consegui enxergar onde está o problema =)<u></u><u></u></span></p><p class="MsoNormal"><span lang="PT-BR"><u></u> <u></u></span></p><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0cm 0cm"><p class="MsoNormal"><b><span lang="PT-BR">From:</span></b><span lang="PT-BR"> R-br <<a href="mailto:r-br-bounces@listas.c3sl.ufpr.br" target="_blank">r-br-bounces@listas.c3sl.ufpr.br</a>> <b>On Behalf Of </b>Cesar Rabak por (R-br)<br><b>Sent:</b> quinta-feira, 2 de junho de 2022 18:54<br><b>To:</b> a lista Brasileira oficial de discussão do programa R. <<a href="mailto:r-br@listas.c3sl.ufpr.br" target="_blank">r-br@listas.c3sl.ufpr.br</a>><br><b>Cc:</b> Cesar Rabak <<a href="mailto:cesar.rabak@gmail.com" target="_blank">cesar.rabak@gmail.com</a>><br><b>Subject:</b> Re: [R-br] Loop para criar diferentes bancos de dados usando o mesmo script<u></u><u></u></span></p></div><p class="MsoNormal"><span lang="PT-BR"><u></u> <u></u></span></p><div><p class="MsoNormal">Olá Bárbara,<u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Via de regra, no R raramente se necessita usar <i>loops</i> pela natureza da linguagem voltada a vetores.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Por outro lado, sua descrição, no texto, é contrária ao que vc parece desejar.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Me explico: a descrição do texto dá a impressão que já se dispõe de um banco com todas as informações (dezenove características e cinco idades). Não se menciona o formato ou onde reside o banco, mas em geral essas operações são feitas usando-se uma <i>query</i> (que no seu caso pode ser feita pelo comando <i>subset</i> [como se vê no s/script).<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12pt">Olhando seu código a dúvida é a seguinte:<u></u><u></u></p><p class="MsoNormal"><span style="font-family:"Courier New"">type13 <- subset(type12, <b>sdtypetrait [index.typet]</b> <= 50)</span><u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">pela definição de <span style="font-family:"Courier New"">sdtypetrait,</span> mais acima, essa var é um vetor de cadeias de caracteres, o que vc espera ao fazer uma comparação com 50 ?<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">HTH<u></u><u></u></p></div><div><p class="MsoNormal">--<u></u><u></u></p></div><div><p class="MsoNormal">Cesar<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div></div><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal">On Thu, Jun 2, 2022 at 2:00 PM Bárbara Mazetti Nascimento por (R-br) <<a href="mailto:r-br@listas.c3sl.ufpr.br" target="_blank">r-br@listas.c3sl.ufpr.br</a>> wrote:<u></u><u></u></p></div><blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0cm 0cm 0cm 6pt;margin-left:4.8pt;margin-right:0cm"><div><div><p class="MsoNormal"><span lang="PT-BR">Boa tarde a todos!</span><u></u><u></u></p><p class="MsoNormal"><span lang="PT-BR"> </span><u></u><u></u></p><p class="MsoNormal"><span lang="PT-BR">Estou com dificuldade em gerar um loop e espero que alguém possa me ajudar aqui.</span><u></u><u></u></p><p class="MsoNormal"><span lang="PT-BR"> </span><u></u><u></u></p><p class="MsoNormal"><span lang="PT-BR">Estou trabalhando com dados de sobrevivência de animais até 5 idades determinadas e o efeito individual de 19 características dentro de um servidor. A partir de um banco inicial, eu preciso rodar o mesmo script para combinar todas as idades com todas as características, gerando 95 bancos de dados diferentes.</span><u></u><u></u></p><p class="MsoNormal"><span lang="PT-BR">Até agora, eu consegui fazer 5 bancos relativos a cada idade através do commandArg:</span><u></u><u></u></p><p class="MsoNormal"><span lang="PT-BR"> </span><u></u><u></u></p><p class="MsoNormal">#Loop ----------------------------------------------------------------------------------<u></u><u></u></p><p class="MsoNormal">## Level 1: DATE OF BIRTH ==> z<u></u><u></u></p><p class="MsoNormal">sdrumthreshold = c("2019-01-01", "2018-01-01", "2017-01-01", "2016-01-01", "2015-01-01")<u></u><u></u></p><p class="MsoNormal">### Level 2: SURVIVAL AGE ==> t<u></u><u></u></p><p class="MsoNormal">sdactthreshold = c(36, 48, 60, 72, 84)<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">## Connection with the code in Linux.<u></u><u></u></p><p class="MsoNormal">args = commandArgs(trailingOnly = TRUE)<u></u><u></u></p><p class="MsoNormal">index.sdrum = as.numeric(args[1])<u></u><u></u></p><p class="MsoNormal">index.sdact = as.numeric(args[2])<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal"><span lang="PT-BR">Quando eu chamo as variáveis dentro do loop no Linux, o script roda certinho. Segue como ilustração a forma como eu chamei o loop no Linux.</span><u></u><u></u></p><p class="MsoNormal"><span lang="PT-BR"> </span><u></u><u></u></p><p class="MsoNormal">#!/bin/bash<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">sdrumth_leader=(1 2 3 4 5)<u></u><u></u></p><p class="MsoNormal">sdactth_leader=(1 2 3 4 5)<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">for z in "${sdrumth_leader[@]}"<u></u><u></u></p><p class="MsoNormal">do<u></u><u></u></p><p class="MsoNormal">   for t in "${sdactth_leader[@]}"<u></u><u></u></p><p class="MsoNormal">   do<u></u><u></u></p><p class="MsoNormal">      if [[ "$z" != "$t" ]]<u></u><u></u></p><p class="MsoNormal">      then<u></u><u></u></p><p class="MsoNormal">           continue<u></u><u></u></p><p class="MsoNormal">         else<u></u><u></u></p><p class="MsoNormal">            sbatch Survival.Rcode.bash $z $t   #calling indexes.<u></u><u></u></p><p class="MsoNormal">            sleep 1<u></u><u></u></p><p class="MsoNormal">         fi<u></u><u></u></p><p class="MsoNormal">   done<u></u><u></u></p><p class="MsoNormal">done<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal"><span lang="PT-BR">Porém, tentei fazer a mesma coisa, criando um vetor com o nome das colunas e não tive sucesso:</span><u></u><u></u></p><p class="MsoNormal"><span lang="PT-BR"> </span><u></u><u></u></p><p class="MsoNormal">### Level 3: TYPE TRAITS ==> q<u></u><u></u></p><p class="MsoNormal">sdtypetrait = c("Stature", "Strength", "FinalScore", "DairyForm", "RumpAngle", "RumpWidth", "RearLegs", "ForeUdder", "RearUdderHeight", "RearUdderWidth", "FootAngle", "UdderDepth", "UdderCleft", "TeatPlacement", "TeatLength", "RearTeatPlacementRv", "RearTeatPlacementSv", “Pasterns", "RearTeatLength")<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">## Connection with the code in Linux.<u></u><u></u></p><p class="MsoNormal">args = commandArgs(trailingOnly = TRUE)<u></u><u></u></p><p class="MsoNormal">index.sdrum = as.numeric(args[1])<u></u><u></u></p><p class="MsoNormal">index.sdact = as.numeric(args[2])<u></u><u></u></p><p class="MsoNormal">index.typet = as.numeric(args[3])<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal"><span lang="PT-BR">Quando eu chamo a variável dentro do script, ela vem com as aspas e dá erro. As entradas da variável do vetor são:</span><u></u><u></u></p><p class="MsoNormal"><span lang="PT-BR"> </span><u></u><u></u></p><p class="MsoNormal">type13 <- subset(type12, <b>sdtypetrait [index.typet]</b> <= 50)<u></u><u></u></p><p class="MsoNormal">count(type13<b>, sdtypetrait [index.typet]</b>)<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">model <- lm(formula = <b>sdtypetrait [index.typet]</b> ~ CalvingAge + I(CalvingAge^2) + appraisalDIM + I(appraisalDIM^2),  data = type15)<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">dados_completo$<b>sdtypetrait [index.typet]</b>_adj <- dados_completo$residuals<u></u><u></u></p><p class="MsoNormal">dados_completo$<b>sdtypetrait [index.typet]</b>_adj2 <- (dados_completo$<b>sdtypetrait [index.typet]</b>_adj)*2<u></u><u></u></p><p class="MsoNormal">dados_usar <- select(dados_completo, RegId, SireRegId, DamRegId, CG, Cross, AFC, AFC2, Inbreeding, Inbreed2, <b>sdtypetrait [index.typet]</b>_adj, <b>sdtypetrait [index.typet]</b>_adj2, Survival)<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">write.table(dados_usar,<u></u><u></u></p><p class="MsoNormal">            file = paste0("/teste/",<u></u><u></u></p><p class="MsoNormal">            sdactthreshold[index.sdact],"/", <b>sdtypetrait [index.typet]</b>,"/Survival.dat"),<u></u><u></u></p><p class="MsoNormal">            sep = " ",<u></u><u></u></p><p class="MsoNormal">            row.names = F,<u></u><u></u></p><p class="MsoNormal">            quote = F,<u></u><u></u></p><p class="MsoNormal">            <span lang="PT-BR">col.names = F)</span><u></u><u></u></p><p class="MsoNormal"><span lang="PT-BR"> </span><u></u><u></u></p><p class="MsoNormal"><span lang="PT-BR">Será que alguém tem alguma ideia de como eu posso chamar a variável sem entrar as aspas, ou se a forma como estou rodando tem algum erro? </span><u></u><u></u></p><p class="MsoNormal"><span lang="PT-BR"> </span><u></u><u></u></p><p class="MsoNormal"><span lang="PT-BR">Obrigada!</span><u></u><u></u></p><p class="MsoNormal" style="background:white"><b><span lang="PT-BR" style="font-size:10pt;font-family:"Times New Roman",serif;color:black;border:1pt none windowtext;padding:0cm">____________________________________</span></b><u></u><u></u></p><p class="MsoNormal" style="background:white"><b><span lang="PT-BR" style="font-size:10pt;font-family:"Times New Roman",serif;color:black;border:1pt none windowtext;padding:0cm">Barbara Mazetti Nascimento</span></b><u></u><u></u></p><p class="MsoNormal" style="background:white"><span lang="PT-BR" style="font-size:10pt;font-family:Arial,sans-serif;color:black;border:1pt none windowtext;padding:0cm">Postdoctoral Researcher</span><u></u><u></u></p><p class="MsoNormal" style="background:white"><span style="font-size:10pt;font-family:Arial,sans-serif;color:black;border:1pt none windowtext;padding:0cm">Department of Animal and Dairy Sciences</span><span style="font-size:12pt;font-family:"Times New Roman",serif;color:black;border:1pt none windowtext;padding:0cm"> </span><u></u><u></u></p><p class="MsoNormal" style="background:white"><span style="font-size:10pt;font-family:Arial,sans-serif;color:black;border:1pt none windowtext;padding:0cm">University of Wisconsin-Madison </span><u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p></div></div><p class="MsoNormal">_______________________________________________<br>R-br mailing list<br><a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br><a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<u></u><u></u></p></blockquote></div></div></div>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br>
</blockquote></div>