2015-03-25 4 views
1

У меня есть вопрос, связанный с функциями внутри петель, я определил функцию так:Ошибка: не удалось найти функцию

FUN <- function(directory=dir, permutations=perm){ 

# Create directory 
dir.create(file.path(getwd(), directory), showWarnings=FALSE) 
mypath <- file.path(getwd(), directory) 

require('plyr') 
scores.v2 <- read.delim('scores.txt', stringsAsFactors=F) 

unif.score <- function(b) { 
    rand.score <- runif(length(b)) 
    new.score <- sort(rand.score/sum(rand.score), decreasing=T) 
    new.score 
} 

for (n in 1:permutations){ 

# Suffle gene_names in column genes 
scores.v2[,2] <- sample(scores.v2[,2]) 

# Assign new scores according to the uniform distribution 
scores.v2 <- ddply(scores.v2, "Locus", transform, Score=unif.score(Score)) 

# Order data.frame based on Locus and Score 
scores.v2 <- scores.v2[order(scores.v2[,1],-scores.v2[,5]),] 
return(scores.v2) 
    } 
} 

Когда я выполняю функцию FUN("permuted", 2) я получаю ошибку Error: could not find function "unif.score". Я могу решить эту проблему, объявляя unif.score перед запуском FUN, но я хотел бы понять поведение этого сообщения об ошибке, я думаю, что это может быть связано с окружающей средой, но я не уверен,

Большое спасибо

Пример как выглядит scores.txt:

Locus Gene Link.score Semantic.score  Score 
1 ABO  DBH 0.13924316  0.07621951 0.10773133 
2 ABO TSC1 0.00827303  0.18384146 0.09605725 
3 ABO SARDH 0.13924316  0.04573171 0.09248743 
4 ABO C9orf96 0.13924316  0.03506098 0.08715207 
5 ABO SLC2A6   NA  0.16859756 0.08429878 
6 ABO RALGDS 0.13924316  0.02195122 0.08059719 

ответ

2

Это сделать с областью и где ddply ищет функции и переменные. Вот почему была добавлена ​​функция here (в 2012 году, я думаю). Использование этого должно быть выполнено:

Смежные вопросы