在 r 中找不到函数

Could not find function in r

我有一个元素 'measure',它有 5 个值,例如 10 20 30 40 50,我正在尝试为每个值求出其他 4 个值的总和。因此,如果所选值为 20,则总和将为 10+30+40+50 = 130。我正在使用 'repeat' 循环执行此操作,其中 'n' 表示值的数量,即 5 case 和 total 是 measure 的所有 5 个值的总和,即 150。

`i <- 1
repeat
{
  sum <- total - measure(i);
  print(sum);
  if (i > n)
    break;
}`

我遇到错误 "Could not find function measure"。

尝试

 v1 <- seq(10,50, by=10)
 sapply(seq_along(v1), function(i) sum(v1[-i]))
 #[1] 140 130 120 110 100

建议使用 apply 系列函数而不是 for 循环,以提高可读性(并且根据问题的不同,速度的提升非常小)。只要做:

x = seq(10,50,10)

sapply(x, function(u) sum(x[x!=u]))
#[1] 140 130 120 110 100

您可以使用:

dat <- seq(10, 50, 10)
res <- rep(sum(dat), length(dat)) # 5 times 150 = 10 + 20 + 30 + 40 + 50
res <- res - dat # (140 = 150 - 10, 130 = 150 - 20, ..., 100 = 150 - 50) 

或者使用 R 在内部进行重复 rep 甚至更快(此技巧归功于 akrun)

sum(dat) - dat
#[1] 140 130 120 110 100