I suggest you use the {sf} package format for your data. It will make a lot of things easier.
In my example I am first transforming your data from a regular data frame to a spatial data frame as per the {sf} package.
The {leaflet} package plays nicely with {sf}, and when you provide your data in sf format it will take care of the rest.
library(dplyr)
library(sf)
library(leaflet)
# your data:
data <- tibble::tribble(~location, ~longitude, ~latitude,
"loc1", 24.600, 67.524,
"loc1", 24.600, 67.535,
"loc2", 28.478, -17.789,
"loc3", 30.654, 12.397,
"loc3", 30.654, 12.397,
"loc3", 30.654, 12.397)
# make data feel spatial = tranform to sf format
data <- data %>%
st_as_sf(coords = c("longitude", "latitude"),
crs = 4326)
# call leaflet with your data as data object
leaflet(data = data) %>%
addProviderTiles("CartoDB.Positron") %>% # a basemeap
addMarkers(popup = ~location) # addCircleMarkers is another possibility
As a shameless plug: a while back I wrote a long form blog post about using leaflet.js in R, you might find it interesting: https://www.jla-data.net/eng/leaflet-in-r-tips-and-tricks/