如何在R中使用函数内部函数

时间:2012-02-18 01:40:55

标签: r

我想在我的函数中使用变量,但我无法弄清楚如何做到这一点。这是我的函数和对data.frame的调用:

errorByAleles <- function(values){
  counts1 <- as.data.frame(table(values), stringsAsFactors = FALSE)
  modal_value1 <- which.max(counts1$Freq)
  div <- nrow(values)
  return ((sum(counts1$Freq)-counts1$Freq[modal_value1])/div)
}

error1 <- apply(X=ind1[,2:9],MARGIN=2,FUN=errorByAleles)

我应用函数的data.frame的dimmension:

> dim(ind1)  
[1] 9 9

问题在于div&lt; - nrow(值)。 div = 9就是我在这里需要的。那么如何在函数内部获取我的“值”呢?我明白了吗?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

当您使用apply()时,您正在对数据的每一列运行您的功能。当apply()调用该函数时,会传递一个表示列的向量。因此,您应该使用nrow(values)而不是length(values)