[R] How to delete repeated values in MCMC sampling and get index of unique values?

Duncan Murdoch murdoch.duncan at gmail.com
Thu Jan 17 22:59:07 CET 2013


On 13-01-17 4:50 PM, C W wrote:
> Dear list,
> How do you delete repeated samples?  In MCMC, when your candidate value has
> been reject, so you remain on the same point, so you keep that value.
>
> Say I have this toy example,
>
>> c(1,6,6,6,3,5,4,4,2,3,5)
>
> The 6 and 4 are repeated, I only want the index of the non-repeated values.
>
> I thought of using which() and unique(), but that does not give you the
> index of the unique values.

You could use x[!duplicated(x)] or rle(x)$values, depending on your 
definition of "repeated".  I hope you're aware that you can't use either 
for things like quantiles and moments of the limiting distribution.

 > x <- c(1,6,6,6,3,5,4,4,2,3,5)
 > x[!duplicated(x)]
[1] 1 6 3 5 4 2
 > rle(x)$values
[1] 1 6 3 5 4 2 3 5

Duncan Murdoch



More information about the R-help mailing list