r – if else – A posição das chaves “{}” faz diferença no resultado?

Estou fazendo web scrapping de um site. E para isso preciso verificar se um data.frame existe ou não.

Além de não estar funcionando, percebo que tenho resultados diferentes mudando apenas a posição das chaves {}

Exemplo 1:

cnpj <- c(5790149,5036532,62931522)

carteiras_coop <- data.frame()

dcoop <- jsonlite::fromJSON(paste0("https://www3.bcb.gov.br/informes/rest/pessoasJuridicas?cnpj=",cnpj(i),""))

for(i in 1:length(cnpj)){
   
   print(paste0("CNPJ ",cnpj(i)," --- ",i," de ",length(cnpj))) 
   
   ifelse(!is.null(purrr::pluck(dcoop, "carteiras")),
   carteiras_coop_i <- dcoop %>% purrr::pluck(., "carteiras", .default = NA) %>%
                                 dplyr::mutate(cnpj = purrr::pluck(dcoop, "cnpj"),
                                               nome_coop = purrr::pluck(dcoop, "nome")) %>%
                                 dplyr::select(cnpj, nome_coop, everything(), -id),
   print("Vazio"))
   
   if(exists(carteiras_coop_i)==T) {
      if (nrow(carteiras_coop)==0){
      carteiras_coop <- carteiras_coop_i
      } else {
      carteiras_coop <- carteiras_coop %>% rbind(carteiras_coop_i); rm(carteiras_coop_i)
      }
   } else (exists(carteiras_coop_i)==F){
      print("Faz nada")
      }
}

#> Erro: '{' inesperado in:
#> "      }
#>   } else (exists(carteiras_coop_i)==F){"
#> >       print("Faz nada")
#> (1) "Faz nada"
#> >       }
#> Erro: '}' inesperado in "      }"
#> > }
#> Erro: '}' inesperado in "}"

Exemplo 2


cnpj <- c(5790149,5036532,62931522)

carteiras_coop <- data.frame()

dcoop <- jsonlite::fromJSON(paste0("https://www3.bcb.gov.br/informes/rest/pessoasJuridicas?cnpj=",cnpj(i),""))

for(i in 1:length(cnpj)){
   
   print(paste0("CNPJ ",cnpj(i)," --- ",i," de ",length(cnpj))) 
   
   ifelse(!is.null(purrr::pluck(dcoop, "carteiras")),
   carteiras_coop_i <- dcoop %>% purrr::pluck(., "carteiras", .default = NA) %>%
                                 dplyr::mutate(cnpj = purrr::pluck(dcoop, "cnpj"),
                                               nome_coop = purrr::pluck(dcoop, "nome")) %>%
                                 dplyr::select(cnpj, nome_coop, everything(), -id),
   print("Vazio"))
   
   if(exists(carteiras_coop_i)==T) {
      if (nrow(carteiras_coop)==0){
      carteiras_coop <- carteiras_coop_i
      } else {
      carteiras_coop <- carteiras_coop %>% rbind(carteiras_coop_i); rm(carteiras_coop_i)
      }
   } else (exists(carteiras_coop_i)==F){print("Faz nada")}
}



#> Erro: '{' inesperado in:
#> "      }
#>    } else (exists(carteiras_coop_i)==F){"
#> > }
#> Erro: '}' inesperado in "}"

O que estou errando? Por que essa diferença só de mudar a chave?