Использование замены в R несколько раз в функции - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь использовать R несколько раз в функции, но, похоже, работает только последнее использование.Например, используя x, где

x <- c(1:3) 

, если я хотел добавить единицу к каждому нечетному значению, я попытался

test <- function(x) {
replace(x,x==1,2)
replace(x,x==3,4)
}

, но проверка (x) приводит к (1,2,4)), где я хотел, чтобы это было (2,2,4) - другими словами, кажется, что работает только последняя «замена».Я знаю, что могу ссылаться на значения по местоположению в векторе, но кто-нибудь знает, как это исправить, если я хочу ссылаться на сами значения?

Большое спасибо!

1 Ответ

0 голосов
/ 31 мая 2018

вам необходимо присвоить выход функции замены переменной

x <- c(1:3) 
test <- function(x) {
  x <- replace(x,x==1,2)
  replace(x,x==3,4)
}
test(x)
[1] 2 2 4

или с помощью функции case_when из dplyr

library(dplyr)
case_when(x == 1 ~ 2,
          x == 3 ~ 4, 
          TRUE ~ as.double(x))
[1] 2 2 4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...