создать числовой вектор на основе значений в логическом векторе - PullRequest
0 голосов
/ 26 июня 2018

У меня есть логический вектор в 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

Я хочу построить еще один числовой вектор, который содержит 1, если логический вектор равен true, и 0, если он равен false. Я пробовал следующий код

## 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 голосов
/ 26 июня 2018

Это должно работать:

numericvec <- as.numeric(logicvec)

Нет необходимости в for() цикле. R обычно работает с целыми столбцами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...