solucion-2021-01-20
- Ejemplo en Bash:
for i in $(seq 1 1000) do mkdir ~/experimento$i cp /home/manadine/dat/examen/experimento$i/resumen.txt experimento$i done
En R:
for (i in 1:1000) { system (paste0 ("mkdir ~/experimento", i)) system (paste0 ("cp /home/manadine/dat/examen/experimento",i, "/resumen.txt experimento",i)) }
- Descubrir el fichero
.Rhistory
mediantels -a /home/manadine/dat/examen
o bien
find /home/manadine/dat/examen
y luego ver su contenido:
cat /home/manadine/dat/examen/.Rhistory
Hay un bucle que crea los ficheros "resultado" y otro para los ficheros "resumen".
- En R:
estaciones.datos <- read.csv2("https://carleos.epv.uniovi.es/~carleos/aireUO/dat/csv/Estación_Señal.csv") estaciones.idnombre <- unique (estaciones.datos [c("id_es","nombre_es")]) estaciones.nombre <- as.character (estaciones$nombre_es) estaciones.id <- as.character (estaciones$id_es) names(estaciones.nombre) <- estaciones.id for (estacion in estaciones.id) for (anno in 2010:2018) { a <- try (read.csv (paste0 ("https://carleos.epv.uniovi.es/~carleos/aireUO/dat/csv/", anno, "/vale", formatC(as.numeric(estacion),width=3,flag=0), ".csv")), silent = TRUE) if (class (a) == "data.frame") { so2 <- a$SO2_HI [a$FL_SO2 == "V"] superaciones <- sum (so2 > 150) if (superaciones > 24) cat ("SUPERA", superaciones, "veces", estaciones.nombre[estacion], "en an~o", anno, "\n") } } closeAllConnections () # quedan muchas abiertas por los errores de descarga
- En R:
## Los datos han sido generados asi': n.base <- 1000 n.nuevos <- 5 n.locus <- 4 generar.genotipo1 <- function () sample (120:122,1) generar.genotipos <- function (n, prefijo) { M <- matrix (replicate (n * n.locus * 2, generar.genotipo1()), n) rownames(M) <- paste0(prefijo, 1:n) colnames(M) <- paste0 ("Locus", c (t (outer (1:n.locus, c("a","b"), paste0)))) M } base <- generar.genotipos (n.base, "Base") nuevos <- generar.genotipos (n.nuevos, "Nuevo") write.table (base, "base.txt") write.table (nuevos, "nuevos.txt") ## lectura de datos base <- read.table ("base.txt") nuevos <- read.table ("nuevos.txt") n.locus <- ncol(base) / 2 ## resoluciones coincidencias <- function (g1, g2) { g1 <- as.numeric(g1) # porque van a usarse con dataframes g2 <- as.numeric(g2) indices <- seq (1, by=2, length.out=n.locus) sapply (indices, function (i) setequal (g1[c(i,i+1)], g2[c(i,i+1)])) } ## coincide alguno ? for (i in 1:nrow(nuevos)) for (j in 1:nrow(base)) if (all(coincidencias(nuevos[i,],base[j,]))) cat ("El nuevo", i, "coincide con el", j, "de la base.\n") ## otra forma de hacerlo: apply (outer (1:nrow(nuevos), 1:nrow(base), Vectorize (function (i, j) all(coincidencias(nuevos[i,],base[j,])))), 1, any) ## con cua'ntos coincide apply (outer (1:nrow(nuevos), 1:nrow(base), Vectorize (function (i, j) all(coincidencias(nuevos[i,],base[j,])))), 1, sum) ## proporcio'n de coincidencias 100 * outer (1:nrow(nuevos), 1:nrow(base), Vectorize (function (i, j) mean(coincidencias(nuevos[i,],base[j,]))))