在一个文件中,我有一个参数列表,其中设置了以下字符串,其中 0=false 和 1=true。我可以创建一些简单的脚本来分割字符中的字符串,然后为每个字符定义设置一个带有真/假的向量,但想知道在基本包或 CRAN 包中是否默认没有此类功能。
位串示例:00000000000000000000100000001000000000000000000000000000000000000001
字符串可能很长,我必须解析它们的负载,所以很高兴看看是否有一些函数可以以不错的速度做到这一点:-)
在一个文件中,我有一个参数列表,其中设置了以下字符串,其中 0=false 和 1=true。我可以创建一些简单的脚本来分割字符中的字符串,然后为每个字符定义设置一个带有真/假的向量,但想知道在基本包或 CRAN 包中是否默认没有此类功能。
位串示例:00000000000000000000100000001000000000000000000000000000000000000001
字符串可能很长,我必须解析它们的负载,所以很高兴看看是否有一些函数可以以不错的速度做到这一点:-)
如果您可以确定所有字符都是 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
as.logical(as.numeric(strsplit(x, "")[[1]]))
例如:
> x = "00001111"
> as.logical(as.numeric(strsplit(x, "")[[1]]))
[1] FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE