rm(list = ls()); gc(); ###importing path_root <- "c:/users/nodal/desktop/" gni.dt <- read.csv(paste0(path_root, "gni.csv"), skip = 4) head(gni.dt) colnames(gni.dt) ###Column value check table(!is.na(gni.dt$X1960)) dim(gni.dt)[1] dim(gni.dt)[1] - sum(is.na(gni.dt$X1965)) column.count <- array(NA, 60) for(i in 5:64) { column.count[i] <- dim(gni.dt)[1] - sum(is.na(gni.dt[, i])) } column.count #start from year 1966 #indicator ind <- which(!is.na(gni.dt$X1975)) #sum na.count.fn <- function(x) { return(sum(is.na(x))) } gni.sum <- apply(gni.dt[ind, 16:64], 1, sum, na.rm =TRUE) #from 7 gni.na <- apply(gni.dt[ind, 16:64], 1, na.count.fn) #from 7 countries <- gni.dt[ind, 1] #finalize gni.df <- data.frame(country = countries, gni.sum = gni.sum, na.count = gni.na) gni.df[order(-gni.df$gni.sum), ]