Je débute en R et je rencontre un problème. J'ai l'impression que c'est a cause de ma condition dans le IF mais je ne suis pas sure.
Mes données sont ici:
Et mon programme:
Le résultat:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 ################## Model Input ################## fact <- 1.46 file_r <- file2[file2$G == 0,] #delete the row where G == 1 C_Agents <- sum(file2$G == 1 & file2$A == "Tiger") NC_Agents <- sum(file2$G == 1 & file2$A == "Lion") ################## Model Run ################## for (i in nrow(file_r)) { i <- i+1 rand2 <- 0.2 Affinity <- file_r$C/file_r$E + (rand2 *file_r$F*file_r$H) if((file_r$A == "Tiger") && (Affinity < (file_r$B) * (file_r$D))){ Tiger_lost <- sum(file_r$A == "Tiger") file_r$A <- "Lion" #switch Tiger to Lion } else if((file_r$A == "Lion") && (Affinity < (file_r$B) * (file_r$D) * fact)){ Tiger_gained <- sum(file_r$A == "Lion") file_r$A <- "Tiger" #switch Lion to Tiger } } ################## Model Output ################## C_Agents NC_Agents Tiger_lost Tiger_gained
Le soucis est que la condition ELSE IF est atteinte une fois ici normalement:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 > C_Agents [1] 2 > NC_Agents [1] 5 > Tiger_lost [1] 3 > Tiger_gained Error: object 'Tiger_gained' not found
Je ne comprends pas pourquoi la condition n'est jamais atteinte alors que c'est censé l'être puisque la condition (file_r$A == "Tiger") && (Affinity < (file_r$B) * (file_r$D)) n'est pas respectée, donc on continue dans le ELSE IF et la condition (file_r$A == "Lion") && (Affinity < (file_r$B) * (file_r$D) * fact) est respectée. Donc la première colonne est censée être changée en "Tiger"
Merci de votre aide !
Partager