Foro de debate

No responde R

No responde R

de David Tarin Bernad -
Número de respuestas: 7

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

En respuesta a David Tarin Bernad

Re: No responde R

de Manuel Muñoz Márquez -

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.

En respuesta a Manuel Muñoz Márquez

Re: No responde R

de David Tarin Bernad -

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


En respuesta a David Tarin Bernad

Re: No responde R

de Manuel Muñoz Márquez -

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.

En respuesta a Manuel Muñoz Márquez

Re: No responde R

de David Tarin Bernad -

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

En respuesta a David Tarin Bernad

Re: No responde R

de Manuel Muñoz Márquez -

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.

En respuesta a Manuel Muñoz Márquez

Re: No responde R

de David Tarin Bernad -

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!!