频率表使用dplyr包

时间:2018-01-07 16:49:40

标签: r dplyr

我是R.的新手。我想根据特定的列创建一个新的频率列。

<html>
    <body>
        <?php
            for ($i = 1; $i <= $total_pages; $i++) {  // print links for all pages
                echo '<a href="getjobs.php?function_Options[0]='.$q.'& function_Options[1]='.
                    $q1.'&state_Options[0]='.$qq.'&state_Options[1]='.
                    $qq1.'&state_Options[2]='.$qq2.'&state_Options[3]='.
                    $qq3.'&state_Options[4]='.$qq4.'&state_Options[5]='.
                    $qq5.'&page='.$i.'"';

                if ($i==$page)  echo " class='curPage'";

                echo " style='color: white; font-size: 20pt;'>".$i."</a> ";
            }; 
        ?>
    </body>
</html>

我希望数据框看起来像 -

City    age
ABC     47
AAB     48
AAB     41
AAB     984
ZZZ     984
MNO      1
MNO     34
VVC     34
VVC     36
VVC     41
VVC     32
MNO     20
BB      29
VVC     4
VVC    984
VVC     59
ABC     30
ABC    984
ABC     36
BB      69
ABC     32
ZZZ     3
ABC     29
ABC     29
AAB     1
AAB     984
ABC     59 

在频率栏中,我使用了这个公式 -

City    age     Frequency
ABC     47      0.296296296
AAB     48      0.185185185
AAB     41      0.185185185
AAB     984     0.185185185
ZZZ     984     0.074074074
MNO     1       0.111111111
MNO     34      0.111111111
VVC     34      0.259259259
VVC     36      0.259259259
VVC     41      0.259259259
VVC     32      0.259259259
MNO     20      0.111111111
BB      29      0.074074074
VVC     4       0.259259259
VVC     984     0.259259259
VVC     59      0.259259259
ABC     30      0.296296296
ABC     984     0.296296296
ABC     36      0.296296296
BB      69      0.074074074
ABC     32      0.296296296
ZZZ     3       0.074074074
ABC     29      0.296296296
ABC     29      0.296296296
AAB     1       0.185185185
AAB     984     0.185185185
ABC     59      0.296296296

你可以忽略&#39;年龄&#39;柱。怎么在R?

提前致谢。

此致 约翰

1 个答案:

答案 0 :(得分:2)

按“城市”分组后,通过将行数(n())除以整个数据集的行数来创建“频率”

library(dplyr)
df1 %>%
    group_by(City) %>%
    mutate(Frequency = n()/nrow(.))