【问题标题】:syntax error while applying tapply to a vector [closed]将tapply应用于向量时出现语法错误[关闭]
【发布时间】:2014-07-24 19:38:12
【问题描述】:

我正在练习 R 编程课程的讲座,在他演示 tapply() 函数的其中一个讲座中,我只是复制粘贴了讲座中教授的内容,但出现语法错误

x <- c(norm(10),runif(10), rnorm(10,1))
f <- g1(3,10)
tapply(x, f, mean)

结果应该是这样的

tapply(x, f, mean)
1 2 3
0.1144464 0.5163468 1.2463678

但我得到的是一个错误值

x <- c(norm(10),runif(10), rnorm(10,1))
Error in norm(10) : 'A' must be a numeric matrix
f <- g1(3,10)
Error: could not find function "g1"
tapply(x, f, mean)
Error in tapply(x, f, mean) : object 'f' not found

【问题讨论】:

  • 您还没有向我们展示g1 是什么,尽管我怀疑您真正想要的是R 函数gl。小写字母-l 与数字-1 不同。您可能还遗漏了“rnorm”中的“r”。投票结束与错别字有关。 (并删除所有无关的标签。)

标签: r list data-structures tapply


【解决方案1】:

您的代码中只是有一些拼写错误:

x <- c(rnorm(10),runif(10), rnorm(10,1))
f <- gl(3,10)
tapply(x,f,mean)

这将为您提供所需的输出。

你的错别字是:

g1 应该是gl

norm 应该是rnorm

更新

没问题。了解 R 中的 apropos 可能会有所帮助。它有点像函数/对象的搜索功能。 Documentation

如果您不记得函数的名称(比如rnorm)但可以记住函数的开头(rnor),您可以键入

apropos("rnor")

这将返回

[1] "rnorm"

然后您可以键入?rnorm 以访问rnorm 的文档。

【讨论】:

  • 谢谢伙计。这很有帮助
  • 没问题。我用一些其他信息更新了我的答案,希望对您有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-11
  • 2014-01-10
  • 2015-03-09
  • 1970-01-01
  • 2023-03-09
  • 2012-10-22
  • 1970-01-01
相关资源
最近更新 更多