Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 汇总类别中的案例数并计算新列_R_Dplyr - Fatal编程技术网

R 汇总类别中的案例数并计算新列

R 汇总类别中的案例数并计算新列,r,dplyr,R,Dplyr,我有一个具有以下结构的数据集 zip code |type of crime ------ |------ 1002 |crime1 1002 |crime1 1002 |crime2 1002 |crime1 9210 |crime1 9210 |crime1 9210 |crime2 9210 |crime2 我还列出了每项罪行的最低刑期 crime | minimum sentence (days) ------| -

我有一个具有以下结构的数据集

zip code |type of crime
------   |------
1002     |crime1
1002     |crime1
1002     |crime2
1002     |crime1
9210     |crime1
9210     |crime1
9210     |crime2
9210     |crime2
我还列出了每项罪行的最低刑期

crime |  minimum sentence (days)
------| ------
crime1|10
crime2|15
使用这两个表,我想做以下工作:

  • 计算每个街区的犯罪总数

    zip code | crime    |number of crimes
    ------   | ------   |-----
    1002     |  crime1  | 3
    1002     |  crime2  | 1
    9210     |  crime1  | 2
    9210     |  crime2  | 2
    
  • 将每一项犯罪乘以其最低刑期,然后按邻居计算总天数

    zip  | crime  | crimexdays
    ---- | ------ | -----
    1002 | crime1 | 30
    1002 | crime2 | 15
    9210 | crime1 | 20
    9210 | crime2 | 30
    

  • 我真的很感激这里的任何帮助。干杯

    使用
    count
    获取频率,
    left\u加入第二个数据集和
    trasmute
    创建新列

    df1 %>% 
         count(zipcode, typeofcrime) %>% 
         left_join(., df2, by = c("typeofcrime" = "crime")) %>% 
         transmute(typeofcrime, crimexsentence = n*minimumsentence) 
    #     zipcode typeofcrime crimexsentence
    #     <int>       <chr>          <int>
    #1    1002      crime1             30
    #2    1002      crime2             15
    #3    9210      crime1             20
    #4    9210      crime2             30
    
    df1%>%
    计数(zipcode,typeofcrime)%>%
    左联接(,df2,by=c(“犯罪类型”=“犯罪”))%>%
    转化(犯罪类型,犯罪句子=n*最小句子)
    #罪刑句的zipcode类型
    #                      
    #1 1002犯罪1 30
    #2 1002犯罪2 15
    #39210犯罪120
    #49210犯罪230
    
    我想你可以使用
    表格
    你能显示犯罪天数的计算结果吗
    按照你的话而不是数字,
    df%>%count(zip.code,type.of.crime)%%>%mutate(crime.x.句子=n*df2[df2$crime==type.of.crime,2])
    谢谢,阿克伦。对不起,我在我原来的帖子中犯了一个错误,我已经改正了。但要回答这个问题:第一项罪行的最低刑期是十天。所以zip 1002中有3个犯罪1。所以crimexdays=30只需更改为
    CrimexSession=n*minimumSession
    也许?