Je suis un nouvel utilisateur de R et je ne sais pas très bien comment améliorer le script suivant. J'ai entendu parler des fonctions d'application mais je n'ai pas réussi à les utiliser. Voici mon problème:Eviter la boucle for en utilisant une fonction apply
J'ai deux dataframes, la première appelée data
et la seconde eco
. data
a plus de 1 million de lignes et eco
90.000. Ils ont tous les deux une colonne commune nommée id
.Pour l'un id
, il y a plusieurs rangées en data
correspondant à la présence d'espèces botaniques.
Je veux symplify en donnant une valeur à la id
dans la trame de données eco
si une espèce spécifique est présente ou manquant dans le même id
dans data
. L'information apparaîtra dans une colonne sp
dans eco
.
Mon script avec la boucle for, qui prend des heures à courir:
for (k in (1:nrow(data))) {
if (data[k, "sp"]==1) #sp corresponds to one specific specie
{
eco[which(eco$id==data[k, "id"]), "sp"] = 1 # before this, the "sp" columnis empty in eco
}
}
Comment puis-je améliorer cela?
Merci beaucoup pour votre aide.
@ SimonO'Hanlon merci pour le commentaire. J'ai mis à jour ma réponse –
C'est ce que je cherchais. Merci beaucoup, ça ne prend pas de temps pour courir! – user3443183