Buenas,
Vigila que solo nos lo has enviado a unos pocos y no a todos los miembros
de la lista. Te lo comento porque queda registrado y puede ser util para
otras personas.
En tu caso yo lo que haria es:
1. unir ambos data frames de forma asimetrica, por la fecha. Puedes
hacerlo con el comando ful_join() o left_join() de dplyr.
2. Quando todo este unido en un data frame con las columans, Dia precio y
TC (solo habrá TC en algunos dias, en los fines de semana será NA), haces
un bucle para rellenar una nueva columna que te dira el cambio. El bucle
que tienes que usar es doble, por un ladoo for, i por el otro while.
Con el for, iremos pasando fila por fila para seleccionar el valor a
rellenar. Asà que haremos una i por cada fila. El bucle preguntara, si el
valor TC de la fila i no es NA "!is.na(datos[i, "TC"]). En caso
afirmativo calculamos el cambio de ese dia. En caso negativo creamos una
variable temporal m i la ponemos igual a i-1. A continuacion haces un
while, cuya causa sea que la columna TC de la fila m no sea nulo. Si sigue
siendo nulo, entonces restas uno a m, si no es nulo, continuas, i calculas
el cambio de la fila i con el valor de cambio de la fila m.
Espero que se entienda. Hay otras formas. Personalmente haria una funcion
y la aplicaria pero creo que es una forma de facil comprensión que te
permite hacer lo que dices facilmente.
Por cierto, el while sirve para asegurarte que si hay mas de dos dias de
fiesta, no de error solo con el for.
Un saludo,
Xavier Tibau
2017-10-14 21:12 GMT+02:00 Sebastian Kruk <residuo.solow en gmail.com>: