【发布时间】:2016-09-19 18:06:35
【问题描述】:
我有一个这样的向量:
x = c(1,2,3,4,5,6,4,5,6,7)
> x
[1] 1 2 3 4 5 6 4 5 6 7
我想摆脱重复并得到这样的东西:
> [1] 1 2 3 7
我的尝试
y = x[duplicated(x)]
> y
[1] 4 5 6
> x[x!=y]
[1] 1 2 3 7
Warning message:
In x != y : longer object length is not a multiple of shorter object length
>
我做错了什么?
这个错误是我应该担心的吗?
有没有其他方法可以做到这一点而不会出错?
【问题讨论】:
-
由于这里
y是一个向量,所以需要使用%in%操作符。x[!(x %in% y)] -
欢迎来到 SO!您的问题很好,但包含不当之处。在编程中,“双”元素通常是指存储为双精度浮点数的数字,而不是“重复”。您会注意到,您的原始标签
double指的是 double 一词的这种含义,而不是您的意思。 en.wikipedia.org/wiki/Double-precision_floating-point_format -
@Psidom:谢谢,正是我需要的!
-
@Hugh:是的,我不知道如何表达我的问题。感谢您提供有用的提示 - 请记住这一点!
-
我能问一下这个问题的上下文吗?部分我怀疑这里有 X-Y 问题。