2013-02-25 4 views
3

Сегодня я не могу применить функцию apply к функции modularity, где последняя функция находится в пакете «igraph». Ниже указаны коды и результаты»Ошибка при применении функции «применить» к функции «модульности»

> library(igraph) 
> g = graph.full(2) 
> modularity(g, 1:2) 
[1] -0.5 
> apply(FUN = modularity, MARGIN = 1, X = matrix(1:4, ncol = 2), graph = g, weights = NULL) 
Error in UseMethod("modularity") : 
no applicable method for 'modularity' applied to an object of class "c('integer',  'numeric')" 

Я был в состоянии использовать функцию apply и modularity таким образом, и никаких сообщений об ошибках не вышел вчера. Но сегодня R выбрасывает сообщение об ошибке выше. У кого встретил эту проблему? скажите, пожалуйста, как решить эту проблему. Спасибо!

ответ

1

Изменить граф имя х должен работать. Здесь я перегруппировать термины, но это не является обязательным.

apply(X = matrix(1:4, ncol = 2) , MARGIN = 1,FUN = modularity, x = g, weights = NULL) 
1] -0.5 -0.5 

Вы получаете сообщение об ошибке, потому что модульность не находит аргумент x, поэтому попробуйте применить его к матрице столбцов, заданной apply.

+0

Это работает. Благодаря! –