【问题标题】:Using a function that requires a vector inside apply()在 apply() 中使用需要向量的函数
【发布时间】:2016-02-17 03:07:52
【问题描述】:

我正在尝试在该矩阵的每一列上使用dmultinom 函数(如下)。因为我想计算三项式概率,所以我想我可以在每一列上使用 apply 并在其中使用 dmultinom(,prob=c(1,2,3)) 作为 FUN。但是这不起作用。

apply(data,1,dmultinom(,prob = c(1,2,3)))

Error in dmultinom(,prob = c(1,2,3)) : 
  argument "x" is missing, with no default

我认为我可以使用 for 循环遍历每一列并使用它来计算概率,但我认为应该有一种方法可以使用 apply 来解决它?

这是我的数据:

  V1.Freq V2.Freq V3.Freq V4.Freq V5.Freq V6.Freq V7.Freq V8.Freq V9.Freq V10.Freq
1      31      31      31      31      31      31      31      31      31       31
2     152     152     152     152     152     152     152     152     152      152
3      21      21      21      21      21      21      21      21      21       21

【问题讨论】:

  • 您也可以阅读help(apply)了解如何使用apply()。底部有使用示例,可​​在控制台中使用example(apply) 执行。大多数帮助文件也是如此。
  • 参见 ?apply :: ...FUN 的可选参数。

标签: r dataframe apply


【解决方案1】:

你可以试试:

apply(data,2,dmultinom,prob=c(1,2,3))

注意:apply(data,1,..) 是逐行的

【讨论】:

  • 谢谢。我找不到合适的语法来使用它,但我知道必须有一种方法可以在 apply 中使用一个简单的函数!
猜你喜欢
  • 2020-12-02
  • 2012-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-16
  • 1970-01-01
  • 2014-08-28
  • 2023-03-08
相关资源
最近更新 更多