Skip to content

[R-es] Eliminar registros por un criterio.

5 messages · juan manuel dias, jose luis, Javier Marcuzzi +1 more

#
Hola, si, claro!

El tema es que tengo NA en variable importe.ok en expedientes que no se
repiten y que no quiero eliminar, y de esta forma si los elimina. Quizá me
faltó comentar que en la base tengo expedientes que no se repiten que no
quiero eliminar. Solo necesito eliminar los expedientes repetidos donde
tengo NA en variable importe.ok.

Se entiende?

Abajo un ejemplo que refleja esto que digo.

razon.social expediente moneda importe
savant 123 $ 1234 necesito este registro
savant        123 $   eliminar este registro
sidus 125 $   eliminar este registro
sidus 125 $ 3245 necesito este registro
artaf 127 $   eliminar este registro
artaf 127 $ 3267 necesito este registro
roche 324 $ 1246 necesito este registro
savant 218 $   necesito este registro

Pude resolverlo así, no se si habrá otra forma sin tener que hacerlo en dos
pasos.

expe.dupli<-base.filrada %>%
  group_by(expediente) %>%
  summarise("cantidad"=n())base.filrada.final<-base.filrada %>%
  left_join(expe.dupli, by=c("expediente")) %>%
  filter(cantidad==2 & !is.na(importe.final_dos) | cantidad==1)

Gracias!!


El vie, 13 may 2022 a las 17:05, Carlos Ortega (<cof en qualityexcellence.es>)
escribió:

  
  
#
No estoy seguro, pero tal vez la fincion coalesce


https://statisticsglobe.com/r-coalesce-function-dplyr-package     En viernes, 13 de mayo de 2022, 22:44:39 CEST, juan manuel dias <juamadias en gmail.com> escribió:  
 
 Hola, si, claro!

El tema es que tengo NA en variable importe.ok en expedientes que no se
repiten y que no quiero eliminar, y de esta forma si los elimina. Quizá me
faltó comentar que en la base tengo expedientes que no se repiten que no
quiero eliminar. Solo necesito eliminar los expedientes repetidos donde
tengo NA en variable importe.ok.

Se entiende?

Abajo un ejemplo que refleja esto que digo.

razon.social expediente moneda importe
savant 123 $ 1234 necesito este registro
savant        123 $  eliminar este registro
sidus 125 $  eliminar este registro
sidus 125 $ 3245 necesito este registro
artaf 127 $  eliminar este registro
artaf 127 $ 3267 necesito este registro
roche 324 $ 1246 necesito este registro
savant 218 $  necesito este registro

Pude resolverlo así, no se si habrá otra forma sin tener que hacerlo en dos
pasos.

expe.dupli<-base.filrada %>%
  group_by(expediente) %>%
  summarise("cantidad"=n())base.filrada.final<-base.filrada %>%
  left_join(expe.dupli, by=c("expediente")) %>%
  filter(cantidad==2 & !is.na(importe.final_dos) | cantidad==1)

Gracias!!


El vie, 13 may 2022 a las 17:05, Carlos Ortega (<cof en qualityexcellence.es>)
escribió:
    [[alternative HTML version deleted]]

_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
#
La he usado...no se me ocurrió usarla en este caso! La voy a probar y luego
te cuento!
Gracias!

El vie, 13 may 2022 a las 17:55, jose luis (<pepeceb en yahoo.es>) escribió:

  
  
#
Estimados

No se si sería justo el caso, pero yo lo realizo de una forma simple, lo explicaré en el siguiente ejemplo reproducible en R.

persona <- c('javier', 'ruben', 'marcuzzi')
bici <- c(1,1,3)
auto <- c(NA,1,1)
cosas <- data.frame(persona, bici, auto)
cosas
no_NA_auto <- cosas[!is.na(cosas$auto),]
no_NA_auto
si_NA_auto <- cosas[is.na(cosas$auto),]
si_NA_auto
complete.cases(cosas)

Javier Rubén Marcuzzi

  
  
3 days later
#
Buenas, 

Una idea de como lo haría yo.

Un saludo.
NA))
clientes importe
1        a      NA
2        a       3
3        b       3
4        c      NA
clientes importe
3        b       3
4        c      NA
clientes importe
2        a       3
3        b       3
4        c      NA