如何以所有顺序变量为列并以特定事件的频率创建数据框

时间:2019-04-11 18:04:49

标签: r dplyr plyr frequency sapply

我有一个序数数据框,其中包含调查格式的答案。我想将每个因子转换为一个可能的列,以便通过特定事件的频率来获取它们。

I have tried lapply, dplyr to get frequencies but failed

as.data.frame(apply(mtfinal, 2, table))

mtfinalf<-mtfinal %>%
group_by(q28) %>%
summarise(freq=n())

以data.frame形式的预期结果

Frequency table with respect to q28's factors

Expected Results in the form of data.frame
q28  sex1  sex2  race1  race2 race3 race4 race5 race6 race7 age1 age2   
2     0                                                         
3     0                                                         
4     23                                                            
5     21





    Actual Results
    $age

      1   2   3   4   5   6   7 
      6   2 184 520 507 393 170 

    $sex

       1    2 
    1239  543 

    $grade

      1   2   3   4 
    561 519 425 277 

    $race7

       1    2    3    4    5    6 
     179   21   27  140   17 1307 
       7 
      91 

    $q8

      1   2   3   4   5 
    127 259 356 501 539 

    $q9

      1   2   3   4   5 
    993 224 279  86 200 

$q28

       2    3    4    5 
    1034  533   94  121

1 个答案:

答案 0 :(得分:0)

这将为您提供许多独特组合的数量。您要问的是不可能的,因为性别,种族和年龄之间可能会有重叠。

mtfinalf<-mtfinal %>%
 group_by(q28,age,race,sex) %>%
 tally()