Для первого, следующая функция R zeros_to_minus_one
выполняет работу:
zeros_to_minus_one <- function (vector) {
for (i in 1:length(vector)){
if (vector[i] == 0){
vector[i] <- -1
}
}
return(vector)
}
vector <- c(0,1,0,1,0)
zeros_to_minus_one(vector) # Returns: -1 1 -1 1 -1
Для второго, следующая функция R find_point
делает то, что вы хотите:
find_point <- function (vector) {
currSum <- 0
totalSum <- 0
for (i in 1:length(vector)){
if (currSum > totalSum){
return(i)
}
currSum <- currSum + vector[i]
totalSum <- currSum - vector[i]
}
}
vector <- c(0,1,0,1,0)
find_point(vector) # Returns: 3