【问题标题】:R force same set of categorical varivablesR强制相同的分类变量集
【发布时间】:2018-02-14 23:15:40
【问题描述】:

我有一个大型数据集,并试图强制每个 ID 具有相同的分类变量集,这是我当前数据框的一个示例:

df<-data.frame(ID=c("1","1","1","1",
                "2","2","2",
                "3","3"), 
           group=c("a", "a", "b", "b",
                   "a", "a", "b",
                   "a", "a"),
           flag=c("yes","no","yes","no",
                  "yes","no","yes",
                   "yes","no"),
           value=c(155,789,18,1893,1466,66,4889,1876,33))

当前数据框:

  ID group flag value

1     a  yes   155

1     a   no   789

1     b  yes    18

1     b   no  1893

2     a  yes  1466

2     a   no    66

2     b  yes  4889

3     a  yes  1876

3     a   no    33

我希望每个 ID 都具有与 ID1 相同的结构,总共 4 行,a 组为 2 行,b 组为 2 行,并且在每个组中,每个 ID 都有一行用于标志是,另一行用于标志否,并且如果当前缺少该行,则将值设置为零。我怎样才能做到这一点?下面是我想要得到的数据框。

df_toget<-data.frame(ID=c("1","1","1","1",
                    "2","2","2","1",
                    "3","3","3","3"), 
               group=c("a", "a", "b", "b",
                       "a", "a", "b","b",
                       "a", "a","b","b"),
               flag=c("yes","no","yes","no",
                      "yes","no","yes","no",
                      "yes","no","yes","no"),
               value=c(155,789,18,1893,1466,66,4889,0,1876,33,0,0)) 

非常感谢任何帮助,感谢您阅读我的帖子!

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    您可以使用tidyr::complete 一步完成:

    df %>%
      complete(ID, group, flag, fill = list(value = 0))
    # A tibble: 12 x 4
       ID    group flag   value
       <fct> <fct> <fct>  <dbl>
     1 1     a     no     789  
     2 1     a     yes    155  
     3 1     b     no    1893  
     4 1     b     yes     18.0
     5 2     a     no      66.0
     6 2     a     yes   1466  
     7 2     b     no       0  
     8 2     b     yes   4889  
     9 3     a     no      33.0
    10 3     a     yes   1876  
    11 3     b     no       0  
    12 3     b     yes      0  
    

    这里的前三个变量是您希望complete 填写缺失组合的分组变量,fill 用于替换缺失值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 2016-06-16
      • 2019-04-14
      • 2014-07-06
      相关资源
      最近更新 更多