如何在R中重写Python功能

  • 本文关键字:重写 Python 功能 python r
  • 更新时间 :
  • 英文 :


如何将以下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

最新更新