Bonjour à tous,
Je ma casse les dents pour la programmation d'une fonction sous R, voici le détail:
J'ai une fonction XX qui génère la sortie de 2 data.frame (très simple, avec une colonne temps qui est la même pour les deux et une colonne de valeur de longueur y)
Ce que souhaiterai faire, c'est créer un nouveau tableau basé sur la sélection de la valeur de longueur y1 ou y2 de sorte que
si y2>y1, y1 est selectionné et si y2<y1, alors y2 est selectionné
avec des chiffres pour illustrer , ça donne ceci:
# mes 2 sorties
> y1
time lenght
1 0 2
2 1 3
3 2 4
4 3 5
5 4 6
6 5 7
> y2
time 1
1 0 2
2 1 3.5
3 2 4.2
4 3 5.1
5 4 5.9
6 5 6.8
#objectif de créer un nouveau qui donnerai ceci :
yfinal:
time 1
1 0 2
2 1 3
3 2 4
4 3 5
5 4 5.9
6 5 6.8
j'essaye de faire ça avec une boucle, mais je n'y arrive pas:
data = matrix(NA, length(y1[,1]),2) #création d'une matrice vide
data[,1]=y1[,1] #j'ai donc ici ma première colonne de complété qui est le temps
j'essai quelque chose comme ça, mais ça ne fonctionne pas, il faut que je le remplisse au fur et à mesure suivant ma condition if else
for(i in 1: length(data[,2])){
if(y2[,2]>y1[,2]) #ici ça prend toute la colonne je pense, mais comment faire pour ne pas écrire manuellement pour tte les colonnes
{data[,i]=y1[,2]}
else {data[,i]=y2[,2]}
}
Quelqun aurait une idée de comment faire? cela parait simple dans la conception, mais je n'arrive pas à programmer...
Un grand merci par avance à ceux qui répondront,
Sylvain