[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