让我们来看一个最小的例子:

library(data.table)
DT = data.table(x=factor(rep(c("b","a","c"),each=3)))
DT[x!="c"][, .N, by = x]
        x     N
   <fctr> <int>
1:      b     3
2:      a     3

在本例中,由于x是一个具有3个级别a,b,c的因子,因此我希望输出为

        x     N
   <fctr> <int>
1:      b     3
2:      a     3
3:      c     0

或者有什么理由来控制这件事.有什么方法可以得到这个yields 吗?

谢谢!

推荐答案

使用联接语法

DT[x != "c"][levels(x), on = "x", .N, by = .EACHI]

#         x     N
#    <char> <int>
# 1:      a     3
# 2:      b     3
# 3:      c     0

R相关问答推荐

提取R中值和列名的所有可能组合

寻找图片边缘

基于现有类创建类的打印方法(即,打印tibles更长时间)

有没有一种方法可以从函数中创建一个值的列表,然后将这些值变成R中的直方图?我一直觉得不行

从开始时间和结束时间导出时间

迭代通过1个长度的字符串长字符R

在R中为马赛克图中的每个字段着色

为什么当用osmdata映射R时会得到相邻状态?

如何调整曲线图中的y轴标签?

即使硬币没有被抛出,也要保持对其的跟踪

合并DFS列表并将索引提取为新列

将. xlsx内容显示为HTML表

R如何将列名转换为更好的年和月格式

R中Gamma回归模型均方误差的两种计算方法不一致

层次树图的数据树

排序R矩阵的行和列

如何将图例文本添加到图例符号中

通过匹配另一个表(查找表)中的列值来填充数据表,并在另一个变量上进行内插

图中显示错误 colored颜色 的图例geom_sf

对计算变量所有唯一值的变量进行变异