作者:民柱自由人士不只是剑客 | 来源:互联网 | 2023-02-05 16:42
我有一个具有以下“梯形图”结构的data.frame
a1 c1 p1 q1 s1 id
596 2
597 2
598 2
599 719800 2
600 2
601 2
602 2
603 44 1 1 2
604 2
每个变量对于每个id只会出现一次,并且不同的变量可以出现在不同的行中。
我希望每个ID都有一行。我的想法是按ID在每列中重复值,然后删除重复项,因此我将得到以下内容。
a1 c1 p1 q1 s1 id
44 NA 719800 1 1 2
但是,我无法想到一个通用的方法。我必须在许多相似的数据集上运行此任务,因此我必须尽可能通用地编写它。
1> Psidom..:
这是一种dplyr
方法:
library(dplyr)
df %>% group_by(id) %>% summarise_all(funs(na.omit(.)[1]))
# A tibble: 1 × 6
# id a1 c1 p1 q1 s1
#
#1 2 44 NA 719800 1 1