Muchas gracias, nuevamente, Javier. Me obligás a aprender... pero me parece que no llego tan rápido como querría y el reloj corre.
Probé con ejemplo que vos ponés en función de mi array, y no hay manera de que yo lo consiga. Supuse que habría alguna función simple que sumara, digamos, el eje *z*. Supongo que terminaré haciendo algo así como tres for anidados, para que vaya haciendo vectores con cada posicion de cada data frame/nivel en *z*. Me parece que es medio como cuando mi hijito para contestar cuanto es 5 x 5 va diciendo: uno, dos, tres... veinticuatro, venticinco y ventiseis! Por suerte R cuenta mejor. 2018-07-05 0:07 GMT+02:00 Javier Marcuzzi <javier.ruben.marcu...@gmail.com>: > Estimado Juan Abasolo > > Si en su mente puede organizarlo en matrices, utilice su pensamiento, eso > no es malo, pero si piensa en matrices utilice for, if, algunos índices > para acceder a lugares específicos, pase lo que está en lapply a un ciclo > for, todo en matrices, si salta de una forma de almacenamiento a otra, > aunque se pueda, también puede aumentar los errores y enredos. > > Si hay algo en R que surge de una búsqueda, puede llegar a acceder a los > códigos fuentes desde los repositorios, hay cosas que yo copie y pegué > desde los repositorios en lugar de instalar el paquete, me di cuenta como > funcionaba, lo mejoré para mis requerimientos particulares, y por suerte > porque esa librería se descontinuó. Hoy por usar lo más básico en R puedo > procesar la información aunque el paquete original ya no esté disponible. > > Si en su cabeza está la idea, pase a un código lo más simple posible, > matrices, ciclos, funciones escritas por usted o librerías específicas pero > muy generales como matrix, donde es específico para matrices pero > independiente a otra área de la ciencia, daría lo mismo para energía > nuclear que para economía, es una operación con matrices. > > Debe haber en español, un ejemplo como https://www.math.uh.edu/~ > jmorgan/Math6397/day13/LinearAlgebraR-Handout.pdf, para mí es una sobre > exigencia, aunque si eso no se conoce es como utilizar una calculadora sin > saber sumar con lápiz y papel, pero también es cierto que es posible con > matrices, no cualquiera puede pensar a ese nivel. > > Por las dudas, copie y pegue el siguiente ejemplo, posiblemente seleccionó > mal la función pero el pensamiento que usted tuvo es correcto. Si funciona > evita el ciclo for. > > m <- array(1:24, c(4,3,2)) > m > apply(m, c(2,3), mean) > > Javier Rubén Marcuzzi > > El mié., 4 jul. 2018 a las 18:17, Juan Abasolo (<juan.abas...@ehu.eus>) > escribió: > >> Muchas gracias, Javier, por tu respuesta. >> Me sobrevalorás. Mi última clase de matemática como tal fue en 4º de >> secundaria, y era la matemática que nos daban a los de letras. Ni te cuento >> hace cuántos años. No puedo seguir la mayoría de lo que comentás sin hacer >> un trabajo forense. Así que agarré lo que entendí... y me parece que, o lo >> que yo quiero hacer son matrices de tres dimensiones (si es que eso >> existe), pero no soy capaz de identificar en el link que me pasaste, rasqué >> un poco las viñetas y no lo vi. >> >> Lo de usar arrays es porque creí que esa era la manera de pensar en datos >> en tres dimensiones, ya que me resultaba evidente que mi lista de matrices >> no la podía usar para operar algo como me lo venía dibujando. Pero todo el >> tiempo es seguir a la intuición, sabiendo poco... caigo en el pozo. >> >> Capaz que lo que tengo que hacer no es siguiendo ese orden sino otro y >> alguna otra lógica: >> >> 1- De Partida:- Tengo un df con unos pocos casos y un montón de >> variables... >> 2- Consigo: ... de las que saco sus distancias, variable a variable, que >> me las devuelve en matrices cuadradas con diagonal 0. Como es con lapply, >> me lo da en una lista >> 3- Quiero sacar la (matriz de) distancia media de todas esas distancias >> puntuales. >> Y por eso, pensé en hacer un objeto de tres dimensiones con el que >> operar. Pero ni idea de eso cómo se formula en "dialecto" matemático. >> Aposté por *array*. >> >> Querría construirlo en R, porque me resulta evidente cómo aplicarlo en la >> investigación que tengo entre manos, y, si funciona, sería aplicable más o >> menos fácilmente, me/nos podemos centrar en afinar la teoría, la búsqueda >> de nuevos datos, etc. >> >> >> >> >> >> 2018-07-04 17:10 GMT+02:00 Javier Marcuzzi <javier.ruben.marcuzzi@gmail. >> com>: >> >>> Estimado Juan Abasolo >>> >>> Posiblemente lo que usted desea está en https://cran.r-project.org/ >>> web/packages/Matrix/index.html, pero yo también en su momento me puse a >>> escribir muchas cosas que ya existían y lo realizaba para aprender >>> (posiblemente todo el que desee aprender correctamente debe intentar >>> escribir funciones desde cero). >>> >>> Yo no vengo de una universidad donde la matemática y álgebra es el >>> fuerte, lógicamente por la carrera, por lo cuál para trabajar con matrices >>> tube que poner muchísimo de mi parte, y uno de los errores que yo cometí >>> fue colocar ceros en lugar de NA y R no me daba, luego mi profesora de >>> matemática cuándo vio mi error casi tiene un paro cardíaco. El trabajar con >>> matrices está muy bien y es potente, pero para realizar un cálculo utilizar >>> data.frame es mucho más cómodo con R, mi pensamiento es: si ne necesita >>> álgebra utilizar matrices, si se necesita trabajar sobre datos y hay una >>> librería o función en R, utilizar una forma de almacenar más amigable. >>> >>> Si usted lo desea puedo buscar un curso de R donde todo está con >>> matrices (si la universidad de Canadá no lo quitó de internet), serán como >>> 400 hojas en total, donde algo de 20 o 30 líneas en matrices luego está >>> escrito en funciones específicas de R ocupando dos o tres renglones, y lo >>> asombroso es en el tiempo que demora la computadora en realizar los >>> cálculos, lógicamente hay funciones donde se prepara la matriz, otra donde >>> se escribe como calcular, mucho más lindo para mostrar todo el trabajo pero >>> lento en ejecutar y en tiempo humano el esfuerzo es mayor. >>> >>> En la dirección que le envío hay algunos ejemplos sobre cómo realizar >>> algunos cálculos con matrices y el autor es el mismo de lme4, yo esquivaría >>> los array o matrices, aunque en R la diferencia entre estos esta en las >>> dimensiones, iría a los formatos de datos más nativos para R, como son >>> data.frame o listas, mire por ejemplo lapply, la letra l lleva a lista, >>> cuándo escribieron la función los programadores tenían en mente la lista o >>> data.frames antes que matrices para acomodar los datos, y el concepto de la >>> facultad sobre matrices cuándo me lo explicaron es que era una método de >>> acomodar la información, desconozco la definición matemática correcta, pero >>> es la forma en que yo comencé a aprender, y para acomodar datos en R y >>> realizar algunas operaciones, matrices no es lo más cómodo, aunque también >>> es cierto que mi profesor de genética cuándo me enseñaba Fortran me hacía >>> leer un libro en basic donde había matrices y conocí BLAS, es el origen, >>> pero no lo más práctico, matemáticamente es muy lindo utilizar matrices y >>> se ve bien al correr en la computadora, pero lleva mucho tiempo y esfuerzo. >>> Piense que en el código que usted envía hay tres renglones, y en dos >>> utiliza as.matrix, as.array, as.list, usted está forzando muchas >>> conversiones, no digo que no se pueda, pero si estandariza a un tipo de >>> datos esas tres conversiones son menos trabajo para la computadora. >>> >>> Javier Rubén Marcuzzi >>> >>> El mié., 4 jul. 2018 a las 8:29, Juan Abasolo (<juan.abas...@ehu.eus>) >>> escribió: >>> >>>> Buenas, >>>> Sigo aprobechando par aaprender en las vacaciones de alumnos y >>>> nuevamente >>>> recurro a Uds. Sé que la perspectiva puede ser erronea, o sea que les >>>> pido >>>> que entiendan lo que quiero decir, más que lo que digo. >>>> >>>> Tengo una lista de matrices todas de idénticas dimensiones, y necesito >>>> hacer operaciones entre ellas. >>>> >>>> Ocurrencia: creí que podría hacer un array, de tal manera que , así como >>>> puedo hacer un colsum para reducir dos dimensiones en una, podría hacer >>>> un >>>> queséyoquéSum que me dejase el array en una matriz de resultados. >>>> >>>> Mis datos tienen una pinta, más o menos así: >>>> >>>> # Unas matrices de distancias hechas df >>>> fejemplo <- function(x)as.matrix(dist(x)) >>>> miarray <- as.array(lapply(as.list(airquality[,2:4]), fejemplo)) >>>> >>>> # Ensoñaciones >>>> miarraydemedias <- sumenselaspilasydividanseporn(miarray) >>>> >>>> En este ejemplo no conseguí dejar vacios los valores NA, pero sí los >>>> NaN en >>>> los míos. Magia? >>>> Lo remarco porque, además de sumas de matrices, también querría >>>> calcular la >>>> matriz media de todos los datos. >>>> >>>> Paciencia,por favor, soy un intruso autodidacta. Y muchas gracias >>>> >>>> >>>> -- >>>> Juan Abasolo >>>> >>>> Hizkuntzaren eta Literaturaren Didaktika Saila >>>> Bilboko Hezkuntza Fakultatea >>>> Euskal Herriko Unibertsitatea >>>> UPV/EHU >>>> >>>> Sarriena auzoa z/g >>>> 48940 Leioa >>>> Bizkaia >>>> >>>> [[alternative HTML version deleted]] >>>> >>>> _______________________________________________ >>>> R-help-es mailing list >>>> R-help-es@r-project.org >>>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>>> >>> >> >> >> -- >> Juan Abasolo >> >> Hizkuntzaren eta Literaturaren Didaktika Saila >> Bilboko Hezkuntza Fakultatea >> Euskal Herriko Unibertsitatea >> UPV/EHU >> >> Sarriena auzoa z/g >> 48940 Leioa >> Bizkaia >> > -- Juan Abasolo Hizkuntzaren eta Literaturaren Didaktika Saila Bilboko Hezkuntza Fakultatea Euskal Herriko Unibertsitatea UPV/EHU Sarriena auzoa z/g 48940 Leioa Bizkaia [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es