Как использовать переменную внутри функции в R - PullRequest
0 голосов
/ 18 февраля 2012

Я хотел бы использовать переменную в своей функции, но я не могу понять, как это сделать. Вот моя функция и вызов 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, к которому я применяю свою функцию:

> dim(ind1)  
[1] 9 9

Проблема с div <- nrow (значения). Div = 9 это то, что мне нужно здесь. Так как же получить nrow для моих «значений» внутри функции? Я ясно? </p>

Любая помощь будет принята с благодарностью!

1 Ответ

1 голос
/ 18 февраля 2012

Когда вы используете apply(), вы запускаете свою функцию для каждого столбца ваших данных.Когда функция вызывается apply(), ей передается вектор, представляющий столбец.Поэтому вместо nrow(values) вы должны использовать length(values).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...