希望你们能用另一种简单的方法解决我的问题,超越自己。
我正在处理一个有一些清洁问题的大型数据集。为了您的理智,我制作了一个简单得多的示例。假设数据集看起来像这样:
A B C D E F G H
1 Albania 2015 10 NA NA NA 60 NA
2 Albania 2015 NA NA 50 NA NA 10
3 Greece 2016 30 NA 20 NA NA NA
4 Greece 2016 NA 400 NA 30 30 10
5 Greece 2017 NA 40 NA NA NA NA
6 Greece 2017 20 NA 30 30 50 10
7 Albania 2015 NA 200 NA 40 NA NA
请原谅,但我希望有一种解决方案可用于我的实际应用。如您所见,重复的行条目(例如Albania 2015)导致变量观测值分布在多行中。我正在寻找在前两列(国家和年份)中将具有匹配字符串值的行绑定在一起,并将展开的变量值(C-H)统一为一行。最后,数据框应如下所示:
A B C D E F G H
1 Albania 2015 10 200 50 40 60 10
2 Greece 2016 30 400 20 30 30 10
3 Greece 2017 20 40 30 30 50 10
有人可以载我到这里解决吗?谢谢!
我们可以按其余列按'A','B'和summarise
分组
library(dplyr)
df1 %>%
group_by(A, B) %>%
summarise_at(vars(-group_cols()), ~ max(., na.rm = TRUE))
# A tibble: 3 x 8
# Groups: A [2]
# A B C D E F G H
# <chr> <int> <int> <int> <int> <int> <int> <int>
#1 Albania 2015 10 200 50 40 60 10
#2 Greece 2016 30 400 20 30 30 10
#3 Greece 2017 20 40 30 30 50 10