Merge rows within a dataframe by a key
dataframe, r
Solution
library(data.table)
dtt <- as.data.table(df)
dtt[, list(var1=unique(var1[!is.na(var1)])
, var2=unique(var2[!is.na(var2)]))
, by=key]
key var1 var2
1: Jane a b
2: Mary c d
3: Sam a b
Problem
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?