在 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
我有一个元素 '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