Olá Bárbara, Via de regra, no R raramente se necessita usar *loops* pela natureza da linguagem voltada a vetores.
Por outro lado, sua descrição, no texto, é contrária ao que vc parece desejar. 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 *query* (que no seu caso pode ser feita pelo comando *subset* [como se vê no s/script). Olhando seu código a dúvida é a seguinte: type13 <- subset(type12, *sdtypetrait [index.typet]* <= 50) pela definição de sdtypetrait, mais acima, essa var é um vetor de cadeias de caracteres, o que vc espera ao fazer uma comparação com 50 ? HTH -- Cesar On Thu, Jun 2, 2022 at 2:00 PM Bárbara Mazetti Nascimento por (R-br) < r-br@listas.c3sl.ufpr.br> wrote: > Boa tarde a todos! > > > > Estou com dificuldade em gerar um loop e espero que alguém possa me ajudar > aqui. > > > > 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. > > Até agora, eu consegui fazer 5 bancos relativos a cada idade através do > commandArg: > > > > #Loop > ---------------------------------------------------------------------------------- > > ## Level 1: DATE OF BIRTH ==> z > > sdrumthreshold = c("2019-01-01", "2018-01-01", "2017-01-01", "2016-01-01", > "2015-01-01") > > ### Level 2: SURVIVAL AGE ==> t > > sdactthreshold = c(36, 48, 60, 72, 84) > > > > ## Connection with the code in Linux. > > args = commandArgs(trailingOnly = TRUE) > > index.sdrum = as.numeric(args[1]) > > index.sdact = as.numeric(args[2]) > > > > 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. > > > > #!/bin/bash > > > > sdrumth_leader=(1 2 3 4 5) > > sdactth_leader=(1 2 3 4 5) > > > > for z in "${sdrumth_leader[@]}" > > do > > for t in "${sdactth_leader[@]}" > > do > > if [[ "$z" != "$t" ]] > > then > > continue > > else > > sbatch Survival.Rcode.bash $z $t #calling indexes. > > sleep 1 > > fi > > done > > done > > > > Porém, tentei fazer a mesma coisa, criando um vetor com o nome das colunas > e não tive sucesso: > > > > ### Level 3: TYPE TRAITS ==> q > > sdtypetrait = c("Stature", "Strength", "FinalScore", "DairyForm", > "RumpAngle", "RumpWidth", "RearLegs", "ForeUdder", "RearUdderHeight", > "RearUdderWidth", "FootAngle", "UdderDepth", "UdderCleft", "TeatPlacement", > "TeatLength", "RearTeatPlacementRv", "RearTeatPlacementSv", “Pasterns", > "RearTeatLength") > > > > ## Connection with the code in Linux. > > args = commandArgs(trailingOnly = TRUE) > > index.sdrum = as.numeric(args[1]) > > index.sdact = as.numeric(args[2]) > > index.typet = as.numeric(args[3]) > > > > 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: > > > > type13 <- subset(type12, *sdtypetrait [index.typet]* <= 50) > > count(type13*, sdtypetrait [index.typet]*) > > > > model <- lm(formula = *sdtypetrait [index.typet]* ~ CalvingAge + > I(CalvingAge^2) + appraisalDIM + I(appraisalDIM^2), data = type15) > > > > dados_completo$*sdtypetrait [index.typet]*_adj <- dados_completo$residuals > > dados_completo$*sdtypetrait [index.typet]*_adj2 <- > (dados_completo$*sdtypetrait > [index.typet]*_adj)*2 > > dados_usar <- select(dados_completo, RegId, SireRegId, DamRegId, CG, > Cross, AFC, AFC2, Inbreeding, Inbreed2, *sdtypetrait [index.typet]*_adj, > *sdtypetrait > [index.typet]*_adj2, Survival) > > > > write.table(dados_usar, > > file = paste0("/teste/", > > sdactthreshold[index.sdact],"/", *sdtypetrait [index.typet]* > ,"/Survival.dat"), > > sep = " ", > > row.names = F, > > quote = F, > > col.names = F) > > > > 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? > > > > Obrigada! > > *____________________________________* > > *Barbara Mazetti Nascimento* > > Postdoctoral Researcher > > Department of Animal and Dairy Sciences > > University of Wisconsin-Madison > > > _______________________________________________ > 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. >
_______________________________________________ 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.