我有一系列二进制数序列作为指标变量。例如这个
100000001001
110000000000
100000000011
111000000000
100000000000
100100000110
可以是其他2个非二进制变量的索引。
我如何在R中对它们进行排序(或对它们进行排序),以便返回它带有索引的相应值:
100000000000
110000000000
111000000000
crap I'm not interested in
其中“我不感兴趣的垃圾”是不是以1开头的序列的其他值,继续1,然后是尾随零。但我所拥有的是所有可能的组合,我不需要。任何帮助表示赞赏。
答案 0 :(得分:4)
为演示目的制作一个向量(上面给出的例子):
x <- c("100000001001", "110000000000", "100000000011", "111000000000", "100000000000", "100100000110")
用regexp抓住有趣的值:
notcrap <- x[grep('^[1]*[0]*$', x)]
排序:
> sort(notcrap)
[1] "100000000000" "110000000000" "111000000000"
答案 1 :(得分:0)
如果您正在寻找速度,请使用此bithack确定int x是否为“废话”
bool notCrap(int x) {
int y = ~x;
return (y & (y-1)) == 0;
}