Discussion:
[R-es] Operaciones con Arrays...creo.
Juan Abasolo
2018-07-04 11:28:38 UTC
Permalink
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]]
Javier Marcuzzi
2018-07-04 15:10:46 UTC
Permalink
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
Post by 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.
# 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
https://stat.ethz.ch/mailman/listinfo/r-help-es
[[alternative HTML version deleted]]
Juan Abasolo
2018-07-04 21:17:32 UTC
Permalink
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.
Post by 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
Post by 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.
# 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
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]]
Javier Marcuzzi
2018-07-04 22:07:13 UTC
Permalink
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
Post by 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
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 <
Post by 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
Post by 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.
# 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
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]]
Juan Abasolo
2018-07-05 10:24:41 UTC
Permalink
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.
Post by 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
Post by 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
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.
Post by 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
Post by 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.
# 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
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]]
Loading...