Probabilidad con AWK
Esoty estudiando probabilidad y decidí aprender en paralelo algo de AWK, para esto desarrollo algunos ejercicios del libro Probabilidad y Estadistica para Ingeniería y Ciencias - 5ª edición - Jay L. Devore, la letra en cursiva es contenido tomado del libro y S denota el espacio mustral.
Ejercicios Sección 2.1
En un torneo de baloncesto vacacional participan cuatro universidades: 1, 2, 3 y 4. En la primera ronda, 1 jugará contra 2 y 3 contra 4. Los dos ganadores jugarán por el campeonato, y los dos perdedores también jugarán. Un posible resultado se puede representar por 1324 (1 le gana a 2 y 3 le gana a 4 en la primera ronda, y depués 1 derrota a 3 y 2 le gana a 4).
Haga una lista de todos los resultados en S
Creo con a mano con emacs el archivo S_2.1-1.txt :
1 3 2 4 1 3 4 2 1 4 2 3 1 4 3 2 2 3 1 4 2 3 4 1 2 4 1 3 2 4 3 1 3 1 2 4 3 1 4 2 3 2 1 4 3 2 4 1 4 1 2 3 4 1 3 2 4 2 1 3 4 2 3 1
si alguien sabe hacer includes en moin de archivos de texto adjuntos digame!!!
Sea A el evento en que 1 gana el torneo. Haga una lista de los resultados en A.
$ awk '$1 ~ /1/ {print}' S_2.1-1.txt 1 3 2 4 1 3 4 2 1 4 2 3 1 4 3 2
Sea B el evento en que 2 llega a la final. Haga una lista de los eventos en B.
$ awk '$1 ~ /2/ || $2 ~ /2/ {print}' S_2.1-1.txt 2 3 1 4 2 3 4 1 2 4 1 3 2 4 3 1 3 2 1 4 3 2 4 1 4 2 1 3 4 2 3 1
¿Cuales son los resultados en A U B y en A intersección B? ¿Cuales son los resultados en A'?
$ echo "A U B más a las malas que a las buenas, poco AWK, poco elegante pero funciona" $ awk '$1 ~ /1/ {print}' S_2.1-1.txt > /tmp/algo && awk '$1 ~ /2/ || $2 ~ /2/ {print}' S_2.1-1.txt >> /tmp/algo && sort /tmp/algo | uniq 1 3 2 4 1 3 4 2 1 4 2 3 1 4 3 2 2 3 1 4 2 3 4 1 2 4 1 3 2 4 3 1 3 2 1 4 3 2 4 1 4 2 1 3 4 2 3 1
Si alguien sabe como hacer esto sin crear el archivo temporal hable en comentarios o calle para siempre$ echo "a las buenas y usando las propiedades de conjuntos (AUB)UC=AUBUC" $ echo "ademas me pille que no tengo que usar el print" $ awk '$1 ~ /1/ || $1 ~ /2/ || $2 ~ /2/' S_2.1-1.txt 1 3 2 4 1 3 4 2 1 4 2 3 1 4 3 2 2 3 1 4 2 3 4 1 2 4 1 3 2 4 3 1 3 2 1 4 3 2 4 1 4 2 1 3 4 2 3 1
$ echo "A Inresección B más a las malas que a las buenas, poco AWK, poco elegante pero funciona" $ awk '$1 ~ /1/ {print}' S_2.1-1.txt > /tmp/algo && awk '$1 ~ /2/ || $2 ~ /2/ {print}' S_2.1-1.txt >> /tmp/algo && sort /tmp/algo | uniq -d $ echo "No retorna nada por que es conjunto vacio"$ echo "a las buenas y sin usar espacios, como el evento B tiene una union en conjuntos quedaría" $ echo "A intersección(CUD) donde (CUD)=B $ awk '$1~/1/&&($1~/2/||$2~/2/)' S_2.1-1.txt
$ echo "A complemento:" ; awk '$1 !~ /1/ {print}' S_2.1-1.txt A complemento: 2 3 1 4 2 3 4 1 2 4 1 3 2 4 3 1 3 1 2 4 3 1 4 2 3 2 1 4 3 2 4 1 4 1 2 3 4 1 3 2 4 2 1 3 4 2 3 1
- dos
| diegueus9 | hay que estar mal de la cabeza para estudiar probabilidad con awk, prefiero python... | 2006-08-24 16:54:14 | ||
| digitalfredy | Diegueus9: en verdad creo que estaba estudiando AWK con probabilidad |
2006-08-24 23:15:30 | ||
| digitalfredy | Aunque nunca use [http://www.cs.bell-labs.com/who/bwk/awkcode.txt este enlace] creo que lo dejo aqui por si acaso despues lo necesito, en definitva uno aprende resto mirando lo que los otros hicieron. |
2006-08-25 12:41:56 | ||
| diegueus9 | digitalfredy, eso es otra cosa pero porque no usas R? |
2006-08-25 14:00:40 | ||
