OK Bárbara, De novo, por falta do CMR, a gente tateia o entendimento, *mas* quer me parecer que o que desejas pode ser obtido com uma chamada assim:
> type13 <- with(dados_completo, subset(type12, Stature <= 50)) *Embora* eu 'não entenda' o item type12, e imagino que a coluna a ser usada aí deveria ser a de idades, talvez‽ HTH On Fri, Jun 3, 2022 at 11:55 AM Bárbara Mazetti Nascimento por (R-br) < [email protected]> wrote: > Oi Cesar! > > > > Obrigada pela resposta! > > 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. > > > > 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. > > Sdtypetrait é 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 type13 <- > subset(type12, *sdtypetrait [index.typet]* <= 50) > > se transformasse em : type13 <- subset(type12, *Stature* <= 50) > > 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. > > 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. > > > > 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. > > > > De qualquer forma, eu agradeço a ajuda! Pelo menos consegui enxergar onde > está o problema =) > > > > *From:* R-br <[email protected]> *On Behalf Of *Cesar > Rabak por (R-br) > *Sent:* quinta-feira, 2 de junho de 2022 18:54 > *To:* a lista Brasileira oficial de discussão do programa R. < > [email protected]> > *Cc:* Cesar Rabak <[email protected]> > *Subject:* Re: [R-br] Loop para criar diferentes bancos de dados usando o > mesmo script > > > > 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) < > [email protected]> 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 > [email protected] > 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 > [email protected] > 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 [email protected] 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.
