删除第一个发生数据帧R.

pso*_*res 2 r dataframe

所以我一直在使用R中的数据框,虽然我仍然在Python中思考太多,似乎无法找到解决我问题的方法.

我有一个数据框,其中一列是用户ID.我想删除所有第一次出现的数字,例如:

1,2,3,4,3,4,2,1,3,4,6,7,7
Run Code Online (Sandbox Code Playgroud)

我希望有这样的输出:

 3,4,2,1,3,4,7
Run Code Online (Sandbox Code Playgroud)

第一次出现user_id时,我会删除它,但即使重复也要保留所有其他内容.

使用python我可能会使用枚举或循环它.对于R,我看到一些看似很酷的函数,但我不确定如何将它与数据框一起使用,如rle.

任何指针都会非常有用,因为我现在有点迷失这个问题的最佳方法.

谢谢你们

And*_*rie 6

该功能duplicated()在这里有用:

x <- c(1,2,3,4,3,4,2,1,3,4,6,7,7)
> x[duplicated(x)]
[1] 3 4 2 1 3 4 7
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为duplicated()返回一个逻辑向量,指示该元素是否重复:

duplicated(x)
 [1] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用此逻辑向量从x中对您想要的值进行子集化(提取).但请注意,在提取中,我保留所有重复的值,而不是删除它们.

要删除所有重复的值(不是你想要的,但无论如何都要说明),试试否定:

x[!duplicated(x)]
[1] 1 2 3 4 6 7
Run Code Online (Sandbox Code Playgroud)