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