Necesito obtener la media de una columna (aquí: puntaje) para filas específicas (aquí: años). En concreto, me gustaría saber la puntuación media de tres períodos:¿Cómo obtener la media de la columna solo para filas específicas?
- período de 1: años < = 1,983
- período de 2: años> = 1984 & años < = 1,990
- período de 3: años> = 1991
Ésta es la estructura de mis datos:
country year score
Algeria 1980 -1.1201501
Algeria 1981 -1.0526943
Algeria 1982 -1.0561565
Algeria 1983 -1.1274560
Algeria 1984 -1.1353926
Algeria 1985 -1.1734330
Algeria 1986 -1.1327666
Algeria 1987 -1.1263586
Algeria 1988 -0.8529455
Algeria 1989 -0.2930265
Algeria 1990 -0.1564207
Algeria 1991 -0.1526328
Algeria 1992 -0.9757842
Algeria 1993 -0.9714060
Algeria 1994 -1.1422258
Algeria 1995 -0.3675797
...
Los valores medios calculados deben agregarse al df en una columna adicional ("media"), es decir, el mismo valor medio para los años del período 1, para los del período 2, etc.
Así es como debería verse:
country year score mean
Algeria 1980 -1.1201501 -1.089
Algeria 1981 -1.0526943 -1.089
Algeria 1982 -1.0561565 -1.089
Algeria 1983 -1.1274560 -1.089
Algeria 1984 -1.1353926 -0.839
Algeria 1985 -1.1734330 -0.839
Algeria 1986 -1.1327666 -0.839
Algeria 1987 -1.1263586 -0.839
Algeria 1988 -0.8529455 -0.839
Algeria 1989 -0.2930265 -0.839
Algeria 1990 -0.1564207 -0.839
...
Cada camino posible probé conseguido fácilmente súper complicado - y tengo que calcular las puntuaciones medias para diferentes períodos de tiempo durante más de 90 países ...
muchas muchas gracias por su ayuda!
WOW! Esto fue sorprendentemente rápido, y muy útil. ¡Muchas gracias por esta solución súper elegante! – TiF
La función 'findInterval' necesita una mejor agencia de publicidad. –