R:使用位串创建True / False

时间:2012-09-14 21:37:47

标签: r

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

示例位字符串: 00000000000000000000100000001000000000000000000000000000000000000001

字符串可能很长,我将不得不解析它们的负载,所以很高兴看到是否有一些功能可以以合适的速度执行此操作: - )

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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