0
I need help for this loop that is returning more answers than desired.
I made a table from the public dataset palmerpenguins
and my goal is to get an estimate of the penguins' gender with missing data via comparison with the average male. The literature says that if the male is 11% larger then x may be female.
The first loop I created for this effect returns more answers than I intend and I do not know how to tidy up. I made a second simpler loop that returns the number of desired answers, but does not refer to the penguin’s number.
What I’m doing wrong in the first?
tabela_pinguins <- data.frame (
numero_pinguim <- c(179,219,257,269,9,10,11,12,48),
percentagem_da_diferenca <- c(24, 14, 13, 10, 13, -4, 17, 8, 25))
for ( x in tabela_pinguins$percentagem_da_diferenca) {
if(x > 11){
numero_pinguim_femea <- which(tabela_pinguins$percentagem_da_diferenca> 11)
mensagem1 <- paste("O pinguim", tabela_pinguins$numero_pinguim[numero_pinguim_femea], "é provavelmente uma fêmea.")
print(mensagem1)
}else if (x<0){
numero_pinguim_macho <- which(tabela_pinguins$percentagem_da_diferenca<0)
mensagem2 <- paste("O pinguim", tabela_pinguins$numero_pinguim[numero_pinguim_macho], "é provavelmente um macho.")
print(mensagem2)
} else {
numero_pinguim_inconclusivo <- which(tabela_pinguins$percentagem_da_diferenca>0 & tabela_pinguins$percentagem<11)
mensagem3 <- paste("Inconclusivo: O pinguim", tabela_pinguins$numero_pinguim[numero_pinguim_inconclusivo], "pode ser macho ou fêmea.")
print(mensagem3)}
}
This loop returns:
[1] "O pinguim 179 é provavelmente uma fêmea." "O pinguim 219 é provavelmente uma fêmea."
[3] "O pinguim 257 é provavelmente uma fêmea." "O pinguim 9 é provavelmente uma fêmea."
[5] "O pinguim 11 é provavelmente uma fêmea." "O pinguim 48 é provavelmente uma fêmea."
[1] "O pinguim 179 é provavelmente uma fêmea." "O pinguim 219 é provavelmente uma fêmea."
[3] "O pinguim 257 é provavelmente uma fêmea." "O pinguim 9 é provavelmente uma fêmea."
[5] "O pinguim 11 é provavelmente uma fêmea." "O pinguim 48 é provavelmente uma fêmea."
[1] "O pinguim 179 é provavelmente uma fêmea." "O pinguim 219 é provavelmente uma fêmea."
[3] "O pinguim 257 é provavelmente uma fêmea." "O pinguim 9 é provavelmente uma fêmea."
[5] "O pinguim 11 é provavelmente uma fêmea." "O pinguim 48 é provavelmente uma fêmea."
[1] "Inconclusivo: O pinguim 269 pode ser macho ou fêmea."
[2] "Inconclusivo: O pinguim 12 pode ser macho ou fêmea."
[1] "O pinguim 179 é provavelmente uma fêmea." "O pinguim 219 é provavelmente uma fêmea."
[3] "O pinguim 257 é provavelmente uma fêmea." "O pinguim 9 é provavelmente uma fêmea."
[5] "O pinguim 11 é provavelmente uma fêmea." "O pinguim 48 é provavelmente uma fêmea."
[1] "O pingum 10 é provavelmente um macho."
[1] "O pinguim 179 é provavelmente uma fêmea." "O pinguim 219 é provavelmente uma fêmea."
[3] "O pinguim 257 é provavelmente uma fêmea." "O pinguim 9 é provavelmente uma fêmea."
[5] "O pinguim 11 é provavelmente uma fêmea." "O pinguim 48 é provavelmente uma fêmea."
[1] "Inconclusivo: O pinguim 269 pode ser macho ou fêmea."
[2] "Inconclusivo: O pinguim 12 pode ser macho ou fêmea."
[1] "O pinguim 179 é provavelmente uma fêmea." "O pinguim 219 é provavelmente uma fêmea."
[3] "O pinguim 257 é provavelmente uma fêmea." "O pinguim 9 é provavelmente uma fêmea."
[5] "O pinguim 11 é provavelmente uma fêmea." "O pinguim 48 é provavelmente uma fêmea."
I wanted the top loop to return the same as this below loop (the order is right) but with reference to the penguin number in the answer.
for(x in tabela_pinguins$percentagem_da_diferenca) {
if(x>11) {
print("O pinguim é provavelmente uma fêmea.")
} else if (x<0) {
print("O pinguim é provavelmente um macho.")
} else {
print("Inconclusivo: O pinguim pode ser macho ou fêmea.")}
}
this returns:
[1] "O pinguim é provavelmente uma fêmea."
[1] "O pinguim é provavelmente uma fêmea."
[1] "O pinguim é provavelmente uma fêmea."
[1] "Inconclusivo: O pinguim pode ser macho ou fêmea."
[1] "O pinguim é provavelmente uma fêmea."
[1] "O pinguim é provavelmente um macho."
[1] "O pinguim é provavelmente uma fêmea."
[1] "Inconclusivo: O pinguim pode ser macho ou fêmea."
[1] "O pinguim é provavelmente uma fêmea.
The estimate is that the male has to be ONLY 11% higher, or HIGHER OR EQUAL to 11% or UP to 11% higher? One thing is
estimativa = 11
, something else isestimativa >= 11
and something else isestimativa <= 11
.– Solkarped
Thanks for the reply @solkarped! You’re right. the estimate would be better if it was >= 11. I tried this alternative but did not return the desired answer.
– Júlia Braga Morais