2017-08-02 36 views
0

我正在對從我的數據集開始的數據集進行LDA主題建模,這些推文是從預處理後的9582個文檔和4144個條目組成的多個twitter帳戶收集的。爲了運行LDA函數,我必須定義參數值,以控制在運行模型時進行多少吉布斯抽樣繪製。如何設置吉布斯採樣的參數

fitted_many <- lapply(sequ, function(k) LDA(dtmTopicModeling, k = k, 
method = "Gibbs",control = list(burnin = burnin, iter = iter, keep = keep))) 

如何定義的燃盡ITER保持爲上述功能的價值?

回答

0

lapply的簽名是lapply(X, FUN, ...)。這三個點指向FUN的可選參數。所以你應該能夠在函數後面提供用逗號分隔的參數。

1

這裏您不需要匿名函數lapply,因爲您所做的只是將k的值傳遞給LDA。相反,你想要的東西,如:

fitted_many <- lapply(sequ, 
         LDA, 
         x = dtmTopicModeling, 
         method = "Gibbs", 
         control = list(burnin = burnin_value, 
            iter = iter_value, 
            keep = keep_value)) 

由於奧里奧爾說來,...論據lapply將被傳遞給引用的函數。通過直接在lapply中引用LDA,您只需確保命名x參數,因爲k值是LDA的第二個參數。

在另一方面,如果你需要的burniniterkeep不同的值,每個k值,那麼你就需要通過多個不同的參數。有幾種方法可以做到,但我認爲purrr::pmap是最直接的。