Foro de discusión y soporte para usuarios de R

Un foro abierto a todos los temas relacionados con R que quiera.
Nota: Una url estable a este foro es https://knuth.uca.es/R-foro.

Prediccion de un GLM

de Erick Daniel Ruvalcaba -

Buenas a todos, realicé un GLM con 9 variables y con el stepwise terminé con un modelo de 4 de esas nueve variables. y estoy intentando graficar la predicción con todas las combinaciones de las variables mas importantes, es decir, hacer algo como un "meshgrid" en matlab. en el que me haga una matriz en la que todas sus columnas sean iguales, que después pueda combinar con una en la que todos sus renglones son iguales y asi tener mis coordenadas (x,y), y hacer un gráfico de color, al que después le encime mi variable respuesta con símbolos proporcionales a su abundancia (es un GLM de variables oceanográficas y abundancia de plancton). algo así como esto:

Esto es un ejemplo de lo que intento hacer, soy usuario de matlab, esto es solo una simulación

el problema parte desde que no puedo hacer dichas matrices de las coordenadas (x,y), a mi modo lo hice desde matlab y despues importé las tablas, muy lento, pero listo.


ahora para hacer la predicción con la función 'predict' necesito  hacer un objeto que tenga ambas matrices con sus nombres, para lo que utilicé la  función 'stack' pero en lugar de hacerme ese nuevo objeto me hace un vector con los datos de solo una de las variables, o sea ni siquiera me pone las dos que necesito.

no sé si logré darme a entender. 

Ayuda, con datos de matrix

de yordi Tamayo -
Hola! Quisiera saber si alguien me puede ayudar con lo siguiente.


En la imagen muestro una matrix en R, la idea pues es observar los nombres de la primera y notar que hay nombres repetidos como es el caso de  MAPK1. Estoy en busca de una función o forma que me una las columnas con los nombres iguales y ademas calcule los valores medios de las columnas de números para ese nombre.


Alguien me ayuda?  


Imagen1

Ayuda ejercicios en R

de Javier Fernández -

Buenos días,

soy nuevo en el uso de la herramienta R, y quería saber si me pueden ayudar a solucionar esta tarea práctica:

  1. Generar una matriz de dimensiones 3 * 5 llena de ceros de 4 maneras diferentes.
  2. Utilizando la función array, crear un array tridimensional 4*4*4, llenándolo con los números del 1 al 64. Hacer una subselección de los índices 2 y 4 de la primera dimensión y 1 y 3 de la tercera. Mirar las dimensiones del nuevo array. Convertir el resultado de esta subselección en un vector, y después construir con ese mismo vector una matriz 4 * 4, llenándola por filas.
  3. Utilizando la matriz 4 * 4 del problema anterior, invertir el orden de sus columnas y transponerla. A todos superiores a 30 de esta nueva matriz cambiarles el signo. Hacer el producto matricial de la matriz original por la que acabamos de obtener.

Y la siguiente:

  1. Crear una lista donde guardaremos información de 3 personas. La lista tendrá 4 componentes, que serán vectores: nombre (carácter), edad (numérico), sexo (factor, H –M), y una variable booleana que indica si esa persona ya trabaja.
  2. Crear un data frame que guarde la misma información que la lista anterior. Primero crearlo partiendo de cero y después aprovechar que ya tenéis la lista para crearlo de una manera más directa. ¿Hay problemas al transformar un objeto lista un objeto data frame? ¿Hace falta especificar que el sexo es una variable factor? ¿De qué tipo es la variable "nombre"? Con la ayuda de la función as.character transformarla en un vector de caracteres.
  3. Añadirle un nuevo vector a la lista que indique la profesión de cada persona. Hacer lo mismo con el data frame. Hacerlo todo sin rehacer ni la lista ni el data frame de nuevo. Aseguraros de que la nueva información tenga su name correspondiente.
  4. Hacer un attach del data frame. Comprobar que sus columnas son accesibles sin hacer mención explícita al propio data.frame. Descargarlo con detach.
  5. Practicar un poco con la lista y el data.frame que tenéis creados. ¿Podéis acceder al data frame con índices numéricos como si fuera una matriz? ¿Sabéis hacer una subselección del data frame? ¿Y de la lista?
La verdad que estoy bastante atascado, y necesito ayuda para sacar las tareas adelanteGracias por adelantado

Utilizacion de operadores logicos.

de David Tarin Bernad -

Buenas tardes,


Estoy intentando programar, holgura en en R, de +, - 2 segundos.

Imaginemos una matriz A:

27/06/07 9:17:00

Una matriz B:

27/06/07 9:16:59

Quiero que todo valor que sea superior o inferior a dos segundos en A, B me arroje un TRUE.

Yo estaba diseñando algo asi:

for (i in 1:l) 

  for(m in 1:n)

   {if (C[i,2]+0.00002>=P[m,2] & C[i,2]-0.00002<=P[m,2]){bien[i,m]<-paste(";",i,";", m)}else{}}

Asi 'bien' me devuelve a fecha de una matriz A (i), y la fecha de la matriz B (m).



Comparación de filas

de David Tarin Bernad -

Buenos dias,


Como podria hacer para comparar una matrix (nx3) y y otra (mx3), donde obtuviese las filas que son coincidentes en ambas, es decir, aquellas filas en las que son iguales para ambas matrices.


He utilizado %in% pero no me llega a servir puesto que me coge lo coincidente para topdo los datos y hay un momento en el que no lo puedo seguir reduciendo.


Un saludo.

No responde R

de David Tarin Bernad -

Quiero realizar la comparacion entre dos bases de datos y observar si hay dos datos iguales que me los guarde, algo asi he programado:

El primer for es ara que vaya cogiendo cada dato de la primera serie y el segundo for de la segunda. Luego, los comparo con una formula condicionar y la idea es luego los que coincidan guardarlo en la matriz "BIEN", pero no responde. ¿Alguna ayuda?

for (i in 1:l) 

  for(m in 1:n)

{if (C[i,1]==P[m,1]){bien[,]<-paste(i,m,P[i,1],C[m,1])}else{mal<-paste(i,m)}}


Un saludo.

David

Consultas SQL desde R

de Alejandro Moreno -

Buenos días,


me he conectado (creo que exitosamente) a una _BBDD SQL desde R mediante:


# Create connection    

jconn <- dbConnect(driver, url, user, password) 

El caso es que ahora no consigo conseguir ejecutar querys desde R y que me devuelva el resultado.


¿alguna ayuda?


gracias por adelantado


Un saludo