说我有两个向量,
set <- c(1, 1, 1, 1, 3, 3, 4, 4, 8, 8, 10)
played <- c(1, 3, 1, 4)
Run Code Online (Sandbox Code Playgroud)
我想删除原始集中的"播放"数字,但我不想删除所有的1,3或4.这样得到的矢量应该是,
1,1,3,4,8,8,10
Run Code Online (Sandbox Code Playgroud)
目前我正在使用循环,但这不是一个非常有效的方法.有功能可以做我想要的.
注意:这不是重复 如何从向量中删除多个值? 而是一个扩展,所有关于不删除所有值.
重新编辑:我说订单很重要,但我错了.
您可以通过以下方式轻松获得pmatch:
set[-pmatch(played,set)]
# [1] 1 1 3 4 8 8 10
Run Code Online (Sandbox Code Playgroud)
这是另一个想法:
rep.int(seq_len(max(set)),tabulate(set)-tabulate(played,nbins=max(set)))
# [1] 1 1 3 4 8 8 10
Run Code Online (Sandbox Code Playgroud)