Foro de debate

No responde R

 
Imagen de David Tarin Bernad
No responde R
de David Tarin Bernad - jueves, 24 de mayo de 2018, 00:15
 

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

Imagen de Manuel Muñoz Márquez
Re: No responde R
de Manuel Muñoz Márquez - jueves, 24 de mayo de 2018, 13:31
 

Hola David:

Si no te he entendido mal lo que quieres hacer es:

> frutas<-c('plátano', 'pera', 'manzana', 'aguacate')
> conp<-c('plátano', 'pera', 'plaza', 'pasar')
> indice <- conp %in% frutas
> conp[indice]
[1] "plátano" "pera" 

Un saludo.

Imagen de David Tarin Bernad
Re: No responde R
de David Tarin Bernad - jueves, 24 de mayo de 2018, 18:54
 

Buenas tardes Manuel, 

Muchisimas gracias, un foro muy útil.

Si correcto era mas o menos eso pero con matrices nxm y ya lo he sacado mas o menos.

Ahora tengo una duda, tengo  que realizar un bucle que se repite 5465x6762, como sabes esto tarda algo en ejecutarse jajaja, ¿existe alguna manera de poner algún contador para saber por donde va? Algo que se pueda visualizar y me diga el numero de repeticiones realizadas.


Un saludo


Imagen de Manuel Muñoz Márquez
Re: No responde R
de Manuel Muñoz Márquez - jueves, 24 de mayo de 2018, 20:49
 

Hola David:

Yo pondría instrucciones print o cat dentro del bucle.

¿Por qué sigues necesitando el bucle? ¿La instrucción %in% no te da de una vez el resultado que necesitas?

¿Puedes poner un ejemplo con algunos datos para ver que resultado necesitas?

Un saludo.

Imagen de David Tarin Bernad
Re: No responde R
de David Tarin Bernad - lunes, 28 de mayo de 2018, 18:19
 

Lo estoy realizando como me ha dicho para evitar los bucles, y agiliza todo. Muchas gracias. Ahora imagínese que tuviese una matriz nx2 y nx2, como podría hacer para aplicar, que fuese igual ambas columnas y ¿para tres?


Un saludo

Imagen de Manuel Muñoz Márquez
Re: No responde R
de Manuel Muñoz Márquez - lunes, 28 de mayo de 2018, 19:03
 

Hola David:

Sería más fácil si pusieras algún ejemplo de lo que tienes y de lo que quieres conseguir.

Si las matrices son A y B, podría ser algo así:

n <- 5
r <- numeric(2 * 2 *n)
for(i in 1:2) {
   for(j in 1:2) {
      r[i,j,] <- A[,i] %in% B[,j]
 }
}

r[i,j,k] es TRUE si el elemento k de la columna i de A está en la columna j de B.

Un saludo.

Imagen de David Tarin Bernad
Re: No responde R
de David Tarin Bernad - martes, 29 de mayo de 2018, 20:32
 

Disculpa, te comento mas detalladamente. 


Tengo tres matrices. A (nx10), B(jx10) y C (mx7), siendo n, j y m, un numero de filas de 6.761, 38.542 y 50.691, respectivamente. 

Busco extraer de estas matrices valores que coincidan en las 3 para la columna 2, 3 y para A y B ademas la columna 8, por ejemplo. 

Yo habia diseñado algo asi:

resultado<- A[,2] %in% B[,2] %C[,2] & A[,3] %in% B[,3] %in% C[,3]  & A[,8] %in% B[,8] #No obtengo lo que quiero, quiero que busque la coincidencia para todas las filas de la columna 2 y 3, para todas las matrices y la columna 8 para la matriz A y B.

Lo que trato posteriormente de conseguir es obtener la matriz A, B y C con una dimension (?x10), (?x10), (?x7), donde sigan permaneciendo todas las columnas pero donde "?" solo se queden las filas que coincidan con las condiciones puestas en "resultado"

Muchisimas gracias, he tratado se der lo mas explicito posible.

Un saludo!!

Imagen de David Tarin Bernad
Re: No responde R
de David Tarin Bernad - martes, 29 de mayo de 2018, 21:05
 

Quiero evitar el uso de bucles ya que las dimensiones son altisimas de las matrices, si es posible.