在 R 中按索引组合行
Combining rows by index in R
编辑:我知道有一个类似的问题已经得到解答,但它不适用于我在下面提供的数据集。上面的数据框是我使用传播函数的结果。我仍然不确定如何合并它。
EDIT2:我意识到我之前在数据上使用的 group_by 函数阻止了传播函数以我最初希望的方式工作。使用取消分组后,我能够直接从原始数据集(下图未显示)转到下图的第二个数据框。
我有一个如下所示的数据框。我正在尝试使每个 ID 号只有 1 行。
id init_cont family 1 2 3
1 I C 1 NA NA
1 I C NA 4 NA
1 I C NA NA 3
2 I D 2 NA NA
2 I D NA 1 NA
2 I D NA NA 4
3 K C 3 NA NA
3 K C NA 4 NA
3 K C NA NA 1
我希望生成的数据框看起来像这样。
id init_cont family 1 2 3
1 I C 1 4 3
2 I D 2 1 4
3 K C 3 4 1
我们可以group_by
'd'、'init_cont'、'family',然后执行 summarise_all
删除所有 NA
元素列 1:3
library(dplyr)
df1 %>%
group_by_at(names(.)[1:3]) %>%
summarise_all(na.omit)
#Or
#summarise_all(funs(.[!is.na(.)]))
# A tibble: 3 x 6
# Groups: d, init_cont [?]
# d init_cont family `1` `2` `3`
# <int> <chr> <chr> <int> <int> <int>
#1 1 I C 1 4 3
#2 2 I D 2 1 4
#3 3 K C 3 4 1
编辑:我知道有一个类似的问题已经得到解答,但它不适用于我在下面提供的数据集。上面的数据框是我使用传播函数的结果。我仍然不确定如何合并它。
EDIT2:我意识到我之前在数据上使用的 group_by 函数阻止了传播函数以我最初希望的方式工作。使用取消分组后,我能够直接从原始数据集(下图未显示)转到下图的第二个数据框。
我有一个如下所示的数据框。我正在尝试使每个 ID 号只有 1 行。
id init_cont family 1 2 3
1 I C 1 NA NA
1 I C NA 4 NA
1 I C NA NA 3
2 I D 2 NA NA
2 I D NA 1 NA
2 I D NA NA 4
3 K C 3 NA NA
3 K C NA 4 NA
3 K C NA NA 1
我希望生成的数据框看起来像这样。
id init_cont family 1 2 3
1 I C 1 4 3
2 I D 2 1 4
3 K C 3 4 1
我们可以group_by
'd'、'init_cont'、'family',然后执行 summarise_all
删除所有 NA
元素列 1:3
library(dplyr)
df1 %>%
group_by_at(names(.)[1:3]) %>%
summarise_all(na.omit)
#Or
#summarise_all(funs(.[!is.na(.)]))
# A tibble: 3 x 6
# Groups: d, init_cont [?]
# d init_cont family `1` `2` `3`
# <int> <chr> <chr> <int> <int> <int>
#1 1 I C 1 4 3
#2 2 I D 2 1 4
#3 3 K C 3 4 1