If I have a dataframe with a key column and data columns, like this
df <- cbind(key=c("Jane", "Jane", "Sam", "Sam", "Mary"), var1=c("a", NA, "a", "a", "c"), var2=c(NA, "b", NA, "b", "d"))
key var1 var2
"Jane" "a" NA
"Jane" NA "b"
"Sam" "a" NA
"Sam" "a" "b"
"Mary" "c" "d"
"Mary" "c" NA
And want a dataframe that merges the rows by name, overwriting NAs whenever possible, like so
key var1 var2
"Jane" "a" "b"
"Sam" "a" "b"
"Mary" "c" "d"
How can I do this?