使用swirl
“编程 E”练习 9。
55% 的练习进度并尝试使用该功能:
evaluate <- function(func, dat){
func(dat)
}
不断收到错误消息:
Error in func(dat) : could not find function "func"
我在漩涡中也遇到了这个错误。如果我们确实在谈论相同的错误,这是上下文和产生错误的代码:
| Let's take your new evaluate() function for a spin! Use evaluate to find the
| standard deviation of the vector c(1.4, 3.6, 7.9, 8.8).
> evaluate(c(1.4,3.6,7.9,8.8))
Error in func(dat) : could not find function "func"
对于仍在学习的人来说,不太明显的错误是它没有提供要使用的功能。由于“func”本身并不是一个实际的函数,我们需要提供函数,标准差,用于评估函数。以下是我在本练习中使用的,sd 是标准偏差函数,以获得所需的结果并继续课程:
> evaluate(sd,c(1.4,3.6,7.9,8.8))
[1] 3.514138
| Perseverance, that's the answer.
这为我们的 evaluate() 函数中的“func”提供了函数 sd(),为“dat”提供了 c() 向量。
我假设您收到此错误消息是因为您没有func
为evaluate
. 使用您的功能:
evaluate <- function(func, dat) {
func(dat)
}
我们可以通过给func
参数提供除函数之外的任何内容来重现错误消息:
evaluate(1, 2)
Error in func(dat) : could not find function "func"
但是,如果我们提供一个函数,evaluate
应该可以工作:
evaluate(function(x) {x + 1}, c(1, 2))
# [1] 2 3
或者更明确地说:
evaluate(func = function(x) {x + 1},
dat = c(1, 2))
# [1] 2 3