R:向量条件0和1

时间:2015-06-17 15:23:09

标签: r

a <- c(1,2,3,4)

条件a> 2,我想要一个向量b =(0,0,1,1)。 目前我正在使用以下方法。有什么简单的方法吗?

b <- (a > 2)
b[b == TRUE] <- 1
b[b == FALSE] <- 0

2 个答案:

答案 0 :(得分:6)

有几种方法可以解决这个问题。

  1. 使用def __init__(self, master): self.counter = count(1) …(more code)… def submit(self): my_id = self.counter.next() …(more code)…

    ifelse

    这只是一种更简单的方式来准确写出你在问题中写的内容:如果条件返回b <- ifelse(a > 2, 1, 0) ,则将值设置为1,否则将其设置为0.

  2. 使用TRUE

    as.numeric

    使用此功能可以轻松地将逻辑值转换为数字等价物。正如人们所料,b <- as.numeric(a > 2) 设置为1而TRUE设置为0。

  3. FALSE

    的懒惰版本
    as.numeric

    当R看到逻辑值乘以数值时,它会自动将逻辑强制转换为它们的数字等价物。因此,逻辑值可以通过乘以1来懒惰地转换(从程序员的角度来看)。

答案 1 :(得分:3)

r编码逻辑数据的方式,你的向量b <- a > 2已经是(0,0,1,1) - r存储&#34; TRUE&#34;值为1&#39;和#34; FALSE&#34;值为0&#39; s。你甚至可以拿mean(b)然后它会返回.5。但是,如果您更喜欢可视化数字而不是逻辑值,那么您可以随时执行b <- as.numeric(b),或者将其全部放在一行代码中b <- as.numeric(a > 2)