如何将以下python代码转换为R编程?
def weirdFaculty(v):
n = len(v)
将所有零转换为-1
,因为零给了我们-1
:的负分数
for i in range(n):
if not v[i]:
v[i] = -1
# Find the total sum
totalSum = sum(v)
currSum = 0
找出当前总和大于总和的点
for i in range(n):
if currSum > totalSum:
return i
currSum += v[i]
totalSum -= v[i]
return n
第一个函数是
weirdFaculty <- function(v) {
v[v == 0] <- -1
sum(v)
}
对于第一个函数,以下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