将随机选择的元素转换为二进制表示

时间:2017-01-17 12:13:47

标签: r binary

假设我得到了string_a <- c('1', '3', '4', '9' ,'8')并且我使用string_a函数从sample()中随机选择了两个元素。假设我得到了38

我的问题是,如何在3中获取8string_a的索引(位置)并以此形式表示:01001,其中1代表随机选择的数字的索引和0表示未选择的索引。

更多例子:

如果随机选择13,二进制表示将为11000

如果随机选择98,二进制表示将为00011

依旧......

2 个答案:

答案 0 :(得分:3)

我们可以使用%in%获取逻辑向量,然后使用as.integer强制转换为二进制文件,将其粘贴在一起

paste(as.integer(string_a %in% sample(string_a, 2)), collapse="")
#[1] "01010"

答案 1 :(得分:2)

# assume x to be 
x = c('3','9')
paste0(as.numeric(match(string_a, x,nomatch = 0)>0), collapse = "")