如何在R中重写Python功能

2024-06-28 11:38:00 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Tags: 代码inforlenreturnifdef编程
2条回答

对于第一个函数,以下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

第一个功能是

weirdFaculty <- function(v) {
        v[v == 0] <- -1
        sum(v)
  }

相关问题 更多 >