<div dir="ltr">Olá Bárbara,<div><br></div><div>Via de regra, no R raramente se necessita usar <i>loops</i> pela natureza da linguagem voltada a vetores.</div><div><br></div><div>Por outro lado, sua descrição, no texto, é contrária ao que vc parece desejar.</div><div><br></div><div>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).</div><div><br></div><div>Olhando seu código a dúvida é a seguinte:<br><br><p class="MsoNormal"><font face="monospace">type13 <- subset(type12, <b>sdtypetrait [index.typet]</b> <= 50)</font><u></u><u></u></p><br class="gmail-Apple-interchange-newline"></div><div>pela definição de <font face="monospace">sdtypetrait,</font> mais acima, essa var é um vetor de cadeias de caracteres, o que vc espera ao fazer uma comparação com 50 ?</div><div><br></div><div>HTH</div><div>--</div><div>Cesar</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">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">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_-8780693983701570460WordSection1"><p class="MsoNormal"><span lang="PT-BR">Boa tarde a todos!<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">Estou com dificuldade em gerar um loop e espero que alguém possa me ajudar aqui.<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">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.<u></u><u></u></span></p><p class="MsoNormal"><span lang="PT-BR">Até agora, eu consegui fazer 5 bancos relativos a cada idade através do commandArg:<u></u><u></u></span></p><p class="MsoNormal"><span lang="PT-BR"><u></u> <u></u></span></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.<u></u><u></u></span></p><p class="MsoNormal"><span lang="PT-BR"><u></u> <u></u></span></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:<u></u><u></u></span></p><p class="MsoNormal"><span lang="PT-BR"><u></u> <u></u></span></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:<u></u><u></u></span></p><p class="MsoNormal"><span lang="PT-BR"><u></u> <u></u></span></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)<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">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? <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">Obrigada!<u></u><u></u></span></p><p class="MsoNormal" style="background:white"><b><span lang="PT-BR" style="font-size:10pt;font-family:"inherit",serif;color:black;border:1pt none windowtext;padding:0cm">____________________________________</span></b><span lang="PT-BR" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:black"><u></u><u></u></span></p><p class="MsoNormal" style="background:white"><b><span lang="PT-BR" style="font-size:10pt;font-family:"inherit",serif;color:black;border:1pt none windowtext;padding:0cm">Barbara Mazetti Nascimento</span></b><span lang="PT-BR" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:black"><u></u><u></u></span></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><span lang="PT-BR" style="color:black"><u></u><u></u></span></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:"inherit",serif;color:black;border:1pt none windowtext;padding:0cm"> </span><span style="color:black"><u></u><u></u></span></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><span lang="PT-BR" style="color:black"><u></u><u></u></span></p><p class="MsoNormal"><u></u> <u></u></p></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>