2015-09-01 2 views
0

Я создал bigrams, используя цикл for в коде. Но я не могу извлечь его из цикла.Как получить выход в цикле for в R?

for(w in j) 
{ 
BigramTokenizer <- function(x) NGramTokenizer(x,Weka_control(min=2,max=2)) 
k <- BigramTokenizer(w) 
print(k) #returns all words in the loop 
} 

k #only return the words in the last sentence 

Как я могу получить весь выход из цикла for при вызове переменной 'k'?

+0

Существует несколько способов. Вы можете использовать '<< -' (что не желательно) или функцию 'assign'. – SabDeM

+1

Функция bigram не меняется с 'w', поэтому вы должны вывести ее определение из цикла. Или лучше, не мешайте определять его вообще: 'lapply (j, NGramTokenizer, Weka_control (min = 2, max = 2))' – Frank

ответ

2

Похоже, вы хотите получить список переменных k, сгенерированных в цикле. Вы можете сделать это с помощью функции lapply:

results <- lapply(j, function(w) { 
    BigramTokenizer <- function(x) NGramTokenizer(x,Weka_control(min=2,max=2)) 
    k <- BigramTokenizer(w) 
    return(k) 
}) 

Теперь вы можете получить доступ к k значения для первого элемента j с results[[1]], результаты для второго элемента j с results[[2]], и так далее.

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