假设我有一个如下所示的 Dataframe
ID Year Var1 Var2 Var3 Var4
1 2001 1 1 3 NA
2 2001 2 3 8 7
3 2002 NA 4 2 1
4 2003 2 8 NA 8
5 2006 NA NA NA NA
6 2007 2 NA 8 8
7 2007 6 7 7 3
我需要确定每个变量的覆盖范围。只要变量有一个非NA观测值,它就被覆盖(例如,Var4在2001年被覆盖,因为即使它有一个NA,它也有一个实际值)
我想总结所有变量的覆盖率,将pivot year作为列名,将变量作为行,每个覆盖变量year的单元格都有一个1。所需的输出如下:
Var 2001 2002 2003 2006 2007
Var1 1 0 1 0 1
Var2 1 1 1 0 1
Var3 1 1 0 0 1
Var4 1 1 1 0 1
我相信这应该是可能的dplyr
,但我还没有找到正确的组合pivot_wider
和summarise
执行这种重新格式化。
5条答案
按热度按时间pprl5pva1#
w9apscun2#
您可以使用
aggregate
尝试以下基本R选项它给出了
68bkxrlz3#
一句话,基地R。
tf7tbtn24#
您可以首先总结任何未丢失的位置,然后转置data.frame。
8nuwlpux5#
以下是我的Tidyverse解决方案: