R:从位字符串中创建真/假

R:从位字符串中创建真/假,r,R,在我得到的一个文件中,对于参数列表,设置了以下字符串,其中0=false,1=true。我可以创建一些简单的脚本,将字符串切分为字符,然后每个字符定义一个带有trues/false的向量,但我想知道在基本包或CRAN包中默认情况下是否没有这样的功能 示例位字符串: 00000000000000000000000000000000000000000000000000000000000000000001 字符串可能很长,我将不得不解析它们的负载,因此最好看看是否有一些函数可以以相当快的速度完成这项工

在我得到的一个文件中,对于参数列表,设置了以下字符串,其中0=false,1=true。我可以创建一些简单的脚本,将字符串切分为字符,然后每个字符定义一个带有trues/false的向量,但我想知道在基本包或CRAN包中默认情况下是否没有这样的功能

示例位字符串: 00000000000000000000000000000000000000000000000000000000000000000001

字符串可能很长,我将不得不解析它们的负载,因此最好看看是否有一些函数可以以相当快的速度完成这项工作:-)

例如:

> x = "00001111"
> as.logical(as.numeric(strsplit(x, "")[[1]]))
[1] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE

如果可以确定所有字符都是0或1,那么这应该很快:

x <- "00000000000000000000100000001000000000000000000000000000000000000001"
charToRaw(x) == charToRaw("1")
#  [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
# [25] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [37] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [49] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [61] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE

x澄清一下:你想从字符串中创建一个真/假向量吗?是的,这正是我想要的:-)一个1000万字符长的字符串(通过执行
x获得)
x <- "00000000000000000000100000001000000000000000000000000000000000000001"
charToRaw(x) == charToRaw("1")
#  [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
# [25] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [37] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [49] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [61] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE