根据逻辑向量R中的值创建数字向量

时间:2018-06-26 15:58:08

标签: r for-loop vector

我在R中有一个逻辑向量,如下所示:

 [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
 [19] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
 [37] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
 [55] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
 [73] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

我想构造另一个数字向量,如果逻辑向量为true,则包含1;如果逻辑向量为false,则包含0。我尝试了以下代码

## create an empty vector
numericvec <- vector(mode="numeric", length=0)

## for loop
for (i in logicvec){
  if(i == TRUE){
    c(numericvec, 1)
  } else {
    c(numericvec, 0)
  }
}

for循环语法似乎还可以,因为我在运行它时没有收到错误,但是当前没有将任何值添加到数值向量中。

1 个答案:

答案 0 :(得分:1)

这应该有效:

int[] array=new int[3];
{
    array[0]=0;
    array[1]=1;
    array[2]=2;
}

不需要numericvec <- as.numeric(logicvec) 循环。 R通常在整列上运行。