如何使用dplyr按组合并数据框的行并展开其他数据?

3
这是我的数据框:
UID               HH0  HH1  HH2  HH3  HH4  HH5
JEZAF000080843824 NA   NA   NA   1    NA   NA
JEZAF000080843824 NA   NA   NA   NA   Y    NA
JEZAF000080843824 NA   NA   NA   NA   NA   2

以下是我希望在结果中看到的内容:

UID               HH0  HH1  HH2  HH3  HH4  HH5
JEZAF000080843824 NA   NA   NA   1    Y    2

我已经尝试过使用 dplyrgroup_by,但是不确定应该使用什么函数来将它们连接起来。我知道可能有一个简单的答案,但我在 R 中还是新手。


df %>% 按 UID 分组 %>% summarise_all(max, na.rm=TRUE) - HubertL
1个回答

2
我们可以使用na.omit来实现这一点。
df1 %>%
     group_by(UID) %>%
     summarise_each(funs(na.omit))
# A tibble: 1 × 7
#               UID   HH0   HH1   HH2   HH3   HH4   HH5
#              <chr> <lgl> <lgl> <lgl> <int> <chr> <int>
#1 JEZAF000080843824    NA    NA    NA     1     Y     2

我认为这个会起作用,但是我遇到了一个错误:Error in summarise_impl(.data, dots) : expecting a single value。数据框的列类型被格式化为因子。我在想问题是否出在那里。 - ddamko
@ddamko 在你展示的例子中,每个UID只有一个非NA值。如果在原始数据集中不是这种情况,我们需要像HubertL评论的那样进行更改。 - akrun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接