Fill the missing values (NA) in various columns (independently of each other) using imputeTS package (in particular, na_kalman function)
To replace by column means, an easy approach would be to use the base R function colMeans. Let's say you have a data frame df. 

1) If you want to replace the NAs per column one by one, you could try this:

df &lt;- sapply(df, function(x)ifelse(is.na(x), mean(x, na.rm=TRUE), x))


2) If you want to replace all NAs in one go, you could try this:

df &lt;- ifelse(is.na(df), rep(colMeans(df, na.rm=TRUE), rep(nrow(df), ncol(df))), unlist(df))