Why is my vector not working unless I rename it?

Hello, does anyone know why this happens?
A vector does not work unless I rename it, but the objects remain the same.

nombres<-
base %>%
  select(id_mujer, contains('posee_os')) %>% 
  pivot_longer(-1) %>%
  filter(!is.na(value)) %>%
  group_by(id_mujer) %>%
  distinct(value) %>%
  count(id_mujer) %>%
  filter(n !=1) %>%
  ungroup() %>%
  select(id_mujer) %>%
  pull()


nombres1<-
base %>%
  select(id_mujer, contains('posee_os')) %>% 
  pivot_longer(-1) %>%
  filter(!is.na(value)) %>%
  group_by(id_mujer) %>%
  distinct(value) %>%
  count(id_mujer) %>%
  filter(n !=1) %>%
  ungroup() %>%
  select(id_mujer) %>%
  pull()

all.equal(nombres, nombres1)
> all.equal(nombres, nombres1)
[1] TRUE

But when I try to filter there is one vector that works and another one that does not.


> base %>%
+   filter(id_mujer %in% nombres)
# A tibble: 0 × 354
# ℹ 354 variables: id_mujer <dbl>, anio_1 <chr>, anio_2 <chr>, anio_3 <chr>, anio_4 <chr>, anio_5 <chr>,
#   anio_6 <chr>, domicilio_1 <chr>, domicilio_2 <chr>, domicilio_3 <chr>, domicilio_4 <chr>,
#   domicilio_5 <chr>, domicilio_6 <chr>, barrio_1 <chr>, barrio_2 <chr>, barrio_3 <chr>, barrio_4 <chr>,
#   barrio_5 <chr>, barrio_6 <chr>, localidad_residencia_1 <chr>, localidad_residencia_2 <chr>,
#   localidad_residencia_3 <chr>, localidad_residencia_4 <chr>, localidad_residencia_5 <chr>,
#   localidad_residencia_6 <chr>, departamento_residencia_1 <chr>, departamento_residencia_2 <chr>,
#   departamento_residencia_3 <chr>, departamento_residencia_4 <chr>, departamento_residencia_5 <chr>, …
# ℹ Use `colnames()` to see all variable names

> base %>%
+   filter(id_mujer %in% nombres1)
# A tibble: 4.417 × 354
   id_mujer anio_1 anio_2 anio_3 anio_4 anio_5 anio_6 domicilio_1         domicilio_2   domicilio_3 domicilio_4
      <dbl> <chr>  <chr>  <chr>  <chr>  <chr>  <chr>  <chr>               <chr>         <chr>       <chr>      
 1    43410 2015   2021   NA     NA     NA     NA     R. DOMINICANA 954   R. DOMINICAN… NA          NA         
 2   592992 2015   2016   2021   NA     NA     NA     CRISTOBAL COLON 268 CRISTOBAL CO… CRISTOBAL … NA         
 3    33539 2015   2020   NA     NA     NA     NA     ROQUE ALVARADO 2140 ROQUE ALVARA… NA          NA         
 4  1242741 2015   2017   2020   2022   NA     NA     TAPALQUE 17         TAPALQUE 17   TAPALQUE 17 TAPALQUE 17
 5  1351832 2015   2021   NA     NA     NA     NA     BUENOS AIRES 1351   BUENOS AIRES… NA          NA         
 6    25791 2015   2022   NA     NA     NA     NA     DOMINGO ZERPA N°251 DOMINGO ZERP… NA          NA         
 7   112049 2015   2017   NA     NA     NA     NA     CORAJA              CORAJA        NA          NA         
 8  1364289 2015   2017   2022   NA     NA     NA     CALILEGUA 9912      CALILEGUA 99… CALILEGUA … NA         
 9   669126 2015   2017   NA     NA     NA     NA     CERRO AGUILAR 854   CERRO AGUILA… NA          NA         
10   194942 2015   2017   2018   2021   NA     NA     MZA 2 LOTE 10       MZA 2 LOTE 10 MZA 2 LOTE… MZA 2 LOTE…
# ℹ 4.407 more rows
# ℹ 343 more variables: domicilio_5 <chr>, domicilio_6 <chr>, barrio_1 <chr>, barrio_2 <chr>, barrio_3 <chr>,
#   barrio_4 <chr>, barrio_5 <chr>, barrio_6 <chr>, localidad_residencia_1 <chr>,
#   localidad_residencia_2 <chr>, localidad_residencia_3 <chr>, localidad_residencia_4 <chr>,
#   localidad_residencia_5 <chr>, localidad_residencia_6 <chr>, departamento_residencia_1 <chr>,
#   departamento_residencia_2 <chr>, departamento_residencia_3 <chr>, departamento_residencia_4 <chr>,
#   departamento_residencia_5 <chr>, departamento_residencia_6 <chr>, edad_1 <dbl>, edad_2 <dbl>, …
# ℹ Use `print(n = ...)` to see more rows, and `colnames()` to see all variable names

Is this reproducible ?

It looks like you have a column called nombres in base. Non-standard R evaluation causes a variable name conflict between the column nombres and the variable nombres.

library(tidyverse)

base <- tibble(id_mujer = 1:3, nombres = c("a", "b", "c"))

nombres <- c(1, 3)
nombres1 <- nombres

base |>
  filter(id_mujer %in% nombres)
#> # A tibble: 0 × 2
#> # ℹ 2 variables: id_mujer <int>, nombres <chr>

base |>
  filter(id_mujer %in% nombres1)
#> # A tibble: 2 × 2
#>   id_mujer nombres
#>      <int> <chr>  
#> 1        1 a      
#> 2        3 c
1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.