[R-br] Loop para criar diferentes bancos de dados usando o mesmo script

barbaramnascimento em gmail.com barbaramnascimento em gmail.com
Qui Jun 2 14:00:03 -03 2022


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 

 

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20220602/eeb73e18/attachment.htm>


Mais detalhes sobre a lista de discussão R-br