2

在一个文件中,我有一个参数列表,其中设置了以下字符串,其中 0=false 和 1=true。我可以创建一些简单的脚本来分割字符中的字符串,然后为每个字符定义设置一个带有真/假的向量,但想知道在基本包或 CRAN 包中是否默认没有此类功能。

位串示例:00000000000000000000100000001000000000000000000000000000000000000001

字符串可能很长,我必须解析它们的负载,所以很高兴看看是否有一些函数可以以不错的速度做到这一点:-)

4

2 回答 2

6

如果您可以确定所有字符都是 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
于 2012-09-14T21:46:01.233 回答
3
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
于 2012-09-14T21:43:43.010 回答