The syntax you are using is the base R way of doing things where you address df by [row, col]
So you would want df <-df[!(is.na(df$Country)), ] Note the comma which says you want all specified rows but all columns
This is the way I first leant it
Then someone showed me tidyverse
The equivalent using tidyverse is df <- df %>% filter(!is.na(country))
You can read the RHS as: pipe df into filter. The piped df actually subsitutes as the first argument of filter
country is interpreted as a column name within the df without typing it out again
I hated the %>% syntax when I very first saw it, love it now
I had never seen drop_na but you can see if makes it easier for reader to see what you are doing