Здесь проблема в том, что функция return
ничего. Это просто print
значение. Вместо этого мы можем сохранить вывод в vector
test1 <- function(n){
v1 <- numeric(length(n)) # initialize a vector of 0s to store the output
for (i in seq_along(n)) { # loop through the sequence of vector
if (n[i] %% 2 == 0){
v1[i] <- 1 # replace each element of v1 based on the condition
} else {
v1[i] <- 0
}
}
v1 # return the vector
}
test1(vec1)
#[1] 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1
Обратите внимание, что для этого не требуется for
петля
as.integer(!vec1 %%2)
#[1] 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1