2017-06-13 83 views
0

我需要循環遍歷新創建的反應(通過基於用戶輸入的數據框子集化)中的列的內容,並在函數中使用它。R反應靈活循環

例如:

target <- reactive({df$targetid[active$region == input$region]}) 

for (i in 1:length(target())){ 



target_info[[i]] <<- reactive({output <- someAPIcallingFunction(target=target(), 
                ma=7, 
                score_restrict = TRUE, 
                metric_restrict = "metric1")}) 
} 

我不知道方括號是在正確的地方,但在循環反應器的輸出的概念,任何幫助將非常感激! 編輯下面的工作示例。

subset1<- reactive({ 
    BI_[input$brand == df$brand] 
    }) 



    hello<- reactive({ 
    for (i in 1:nrow(subset1())) 
     { 
     print(subset1()[i,1]) } 

AB

+0

您需要使用'local',因爲我在這裏做的:https://stackoverflow.com/a/44506201/1100107 –

+0

哦,等一下,你不使用'i' * *裏面的'reactive',所以我不確定'local'是否需要。幫助一個完整的(但最小的)工作示例會更容易。 –

+0

哇,我只是意識到你的循環有一個反應的長度...我錯過了2/3的問題。非常有趣的情況。請提供示例:) –

回答

0

找到這一問題的解決方案(以及一個解決方法):

我與反應性作爲數據源的內容lapply使用,但不得不把轉換反應性成首先列表。

variableA<- reactive({as.list(areactive())}) 


    testing<- reactive({lapply(variableA(), 
       function(k) somefunction{parameter1=input1,parameter2=k}}) 

希望這可以節省您一些時間!

AB