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

2018-07-05 Por tema Juan Abasolo
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 :

> 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 ()
> 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 > 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 

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

2018-07-04 Por tema Javier Marcuzzi
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 ()
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.marcu...@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 

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

2018-07-04 Por tema Juan Abasolo
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 
:

> 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 ()
> 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, 

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

2018-07-04 Por tema Javier Marcuzzi
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 ()
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
>

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


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

2018-07-04 Por tema Juan Abasolo
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