[R-es] Operaciones con Arrays...creo.

Javier Marcuzzi j@vier@ruben@m@rcuzzi @ending from gm@il@com
Jue Jul 5 00:07:13 CEST 2018


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.abasolo using 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 using 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.abasolo using 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 using 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
>

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es