我在R中有一个特殊的 case ,其中两个类别显示在每年的面板数据中,但与我使用的级别不对应,这就是说,有两个城市属于同一个州(A),但处于各自的城市级别(a和b),其余数据位于州级别(Dep).

year Dep Homicides
2000 C 20
2000 a 5
2000 b 3
2000 D 17
2000 E 18
2001 C 21
2001 a 6
2001 b 4
2001 D 18
2001 E 18

因此,我想使用Dep=="a"和Dep=="b"通过SUM形成一个新类别,也就是说,将属于Dep A的两个城市(也不存在,因此需要创建)按年相加,最终输出如下所示:

year Dep Homicides
2000 C 20
2000 A 8
2000 D 17
2000 E 18
2001 C 21
2001 A 10
2001 D 18
2001 E 18

提前谢谢您!

推荐答案

我们可以将‘Dep’级别重新编码为‘A’,并将其用作分组变量以获得sum

library(forcats)
library(数据.table)
dt1[, .(Homicides = sum(Homicides)), 
   .(year, Dep = fct_other(Dep, drop = c("a", "b"), other_level = "A"))]

-输出

    year    Dep Homicides
    <int> <fctr>     <int>
1:  2000      C        20
2:  2000      A         8
3:  2000      D        17
4:  2000      E        18
5:  2001      C        21
6:  2001      A        10
7:  2001      D        18
8:  2001      E        18

或者也可以使用fct_collapse

dt1[, .(Homicides = sum(Homicides)), .(year, 
       Dep = fct_collapse(Dep, A = c("a", "b")))]

-输出

   year    Dep Homicides
   <int> <fctr>     <int>
1:  2000      C        20
2:  2000      A         8
3:  2000      D        17
4:  2000      E        18
5:  2001      C        21
6:  2001      A        10
7:  2001      D        18
8:  2001      E        18

数据

dt1 <- structure(list(year = c(2000L, 2000L, 2000L, 2000L, 2000L, 2001L, 
2001L, 2001L, 2001L, 2001L), Dep = c("C", "a", "b", "D", "E", 
"C", "a", "b", "D", "E"), Homicides = c(20L, 5L, 3L, 17L, 18L, 
21L, 6L, 4L, 18L, 18L)), class = c("数据.table", "数据.frame"
), row.names = c(NA, -10L))

R相关问答推荐

使用Shiny组合和显示复制和粘贴的数据

根据R中两个变量的两个条件删除带有dspirr的行

在不安装软件包的情况下测试更新

derrr summarise每个组返回多行?

使用sf或terra的LINESTRAING的累积长度

当我们有多个特殊字符时,使用gsub删除名称和代码'

如何计算多个日期是否在一个日期范围内

如果某些列全部为NA,则更改列

根据1个变量绘制 colored颜色 发散的 map ,由另一个变量绘制饱和度,ggplot2不工作

使用R中的dist()迭代ID匹配的欧几里德距离

为什么在BASE R中绘制线条时会看到线上的点?

如何显示准确的p值而不是<;0.001*?

使用geom_sf跨越日期线时的闭合边界

R预测包如何处理ARIMA(Auto.arima函数)中的缺失值

随机将数据帧中特定列上的某些行设置为NA

按组使用dummy r获取高于标准的行的平均值

Data.table::Shift type=允许扩展数据(&Q;LAG&Q;)

我已经运行了几个月的代码的`Palette()`中出现了新的gglot错误

将边列表转换为路径长度列表

具有由向量定义的可变步长的序列