Sample of 2 (made-up) example rows in df:
userid facultyid courseid schoolid 167 265 NA 1678 167 71111 301 NA
aggregate(x = df1, by = list(df1$userid), FUN = function(x) na.omit(x)[1])[,-1]
or use dplyr library:
dplyr
library(dplyr) df1 %>% group_by(userid) %>% summarise_each(funs(first(na.omit(.))))