假设这是我的数据.

dt <- data.table(F = c(1, 2, 3, 4, 5, 6, 7, 7, 4, 6, 7, 5),
                 M = c("a", "b", "c", "b", "c", "a", "d", "d", "b", "b", "d", "c"));
colnames(dt)=c("She","He");

请使用data.table包或任何非常高效的程序包,以便可以在非常大的数据集上使用它.

  • 我需要找出这里的错误.
  • 6在这里是错误的,因为它应该只有一种类型的值.即6的值为a和b,这是错误的.您会注意到所有其他类型的值都只有一种类型.
  • 我希望在右边创建一列,如果错误,则给出0,如果正确,给出1.
  • 排序/排序不应该做.
  • 不要聚集在一起.

理想的解决方案是:

c(0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0)

推荐答案

dt[,error := +(length(unique(M))>1), F][]
    F M error
 1: 1 a     0
 2: 2 b     0
 3: 3 c     0
 4: 4 b     0
 5: 5 c     0
 6: 6 a     1
 7: 7 d     0
 8: 7 d     0
 9: 4 b     0
10: 6 b     1
11: 7 d     0
12: 5 c     0

请注意,data.table提供了用于执行length(unique(..))--由@ThomasIsCoding提醒的uniqueN函数

使用

dt[,error := +(uniqueN(M)>1), F][]

R相关问答推荐

指定要保留在wrap_plots中的传奇

有没有方法将琴弦完全捕捉到R中的多边形?

卸载安装了BRM的模型发出的警告

更改绘图上的x轴断点,而不影响风险?

隐藏e_mark_line的工具提示

derrr summarise每个组返回多行?

如何从当前行上方找到符合特定条件的最接近值?

在R中将特定列的值向右移动

在rpart. plot或fancyRpartPlot中使用带有下标的希腊字母作为标签?

无法定义沿边轨迹的 colored颜色 渐变(与值无关)

按时间顺序对不同事件进行分组

按组计算列中1出现的间隔年数

自动STAT_SUMMARY统计与手动标准误差之间的差异

我将工作代码重构为一个函数--现在我想不出如何传递轴列参数

R代码,用于在线条图下显示观测表

计算Mean by分组和绑定到R中的数据集

创建新列,其中S列的值取决于该行S值是否与其他行冗余

R中的Desolve:返回的导数数错误

在ggplot2图表中通过端点连接点

抽样变换-REXP与RWEIBUR