Если функция, если значение в векторе> 0, то заменить на число - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь выполнить тест Коулса-Джонса в R.

По сути, я не знаю, как написать скрипт, в котором я могу проверить, больше ли значение в моем векторе, чем ноль или нет (для каждого отдельного значения в этом векторе). Если он больше нуля, он должен заменить это число на единицу, если нет, то на ноль.

Пока ничего не могу найти, и был бы признателен за помощь

Ответы [ 3 ]

0 голосов
/ 16 января 2020

Вы можете использовать ifelse для одновременного выполнения обоих преобразований:

yourvector<-ifelse(yourvector>0,1,0)

Третьим аргументом является "else".

0 голосов
/ 16 января 2020

Преобразование в двоичный файл можно выполнить с помощью

as.integer(vec > 0)

или

+(vec > 0)
0 голосов
/ 16 января 2020

Присвоение значений вашему вектору

Предполагая, что у вас есть вектор с именем myVector, вы можете заменить его значения следующим кодом:

myVector <- c(1, 2, 3, 45, 56, 0,-1, -99, 12, -5)
myVector[myVector > 0] <- 1     #Replace values > 0 with 1
myVector[!myVector > 0] <- 0    #Replace values not > 0 with 0

Результат будет:

> myVector
1 1 1 1 1 0 0 0 1 0

Надеюсь, это поможет.

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