"суммировать" несколько неполных столбцов в 1 итоговый столбец
Я пытаюсь использовать R для объединения данных из разных наборов данных с помощью:
merge(x,y, all=T, by="ID")
После слияния у меня, очевидно, есть полный столбец идентификаторов, а остальные столбцы заполнены NA.
В целом это нормально, но на этот раз мне нужно создать еще один столбец, в котором будут сохранены все значения моего анализа из 3 предыдущих столбцов.
Findings.x Findings.y
1 <NA> Decreases
2 Increases <NA>
3 <NA> Decreases
4 Increases <NA>
5 <NA> Increases
6 Increases <NA>
7 <NA> Decreases
Вывод, который я ищу:
Findings.summary
1 Decreases
2 Increases
3 Decreases
4 Increases
5 Increases
6 Increases
7 Decreases
Какова хорошая стратегия для этого? Должен ли я объединить их по-другому?
Я хотел бы сохранить это просто и оставаться в R-base, если решение достаточно простое.
Редактировать:
В этом посте есть похожая проблема, я попытался применить это решение:
data.frame(a=data$a, mycol=apply(data[,-1],1,sum,na.rm=TRUE))
Но мои строки не числовые, так что это не работает.
Редактировать 2
Это решение того же поста решило проблему:
data$m = data$x # your new merged column start with x
data$m[!is.na(data$y)] = data$y[!is.na(data$y)] # merge with y
data$m[!is.na(data$z)] = data$z[!is.na(data$z)] # merge with z
> data
a x y z m
1 A 1 NA NA 1
2 B 2 NA NA 2
3 C NA 3 NA 3
4 D NA NA 4 4
5 E NA NA 5 5
Это также работает со строками символов, если у вас есть лучшее решение, дайте мне знать.