闪亮:带反应数据的dplyr(或使用函数ifelse()的替代方法)

时间:2018-02-15 15:24:41

标签: r shiny dplyr reactive

我正在寻找一种在我的Shiny应用中使用ifelse()表单dplyr的方法。

这很好用:

 # First Subset:
  Rohdaten_subset <- reactive({
req(input$Filter_sex)
filter( Rohdaten, Geschlecht %in% input$Filter_sex & Alter %in% input$Filter_age)
})

# Second Subset:
Rohdaten_subset2 <- reactive({
Rohdaten_subset() %>% mutate(Alternative1 := Rohdaten_subset()[[input$Preis1]] + Rohdaten_subset()[[input$produkt1]],
                             Alternative2 := Rohdaten_subset()[[input$Preis2]] + Rohdaten_subset()[[input$produkt2]],
                             Alternative3 := Rohdaten_subset()[[input$Preis3]] + Rohdaten_subset()[[input$produkt3]],
                             Alternative4 := Rohdaten_subset()[[input$Preis4]] + Rohdaten_subset()[[input$produkt4]]
                             )%>% select(Alternative1,Alternative2,Alternative3,Alternative4)

})

但这部分不起作用,我不知道为什么:

Rohdaten_subset3 <- reactive({
df <-  Rohdaten_subset2()
df$Alternative1_fc <- 0
df$Alternative1_fc[(df$Alternative1 > df$Alternative2) & (df$Alternative1 > df$Alternative3) & (df$Alternative1 > df$Alternative4)]<-1
})


Rohdaten_subset4 <- reactive({
df <-  Rohdaten_subset2()
df$Alternative1_fc <-  ifelse(df$Alternative1 > df$Alternative2 
                            & df$Alternative1 > df$Alternative3 
                            & df$Alternative1 > df$Alternative4, 1, 0) 
 })  

我很高兴能得到任何帮助!

此致  儒略

编辑1:
我想构建一个新的变量(0/1编码),如果&#34; Alternative1&#34;是&#34; Alternative1&#34;,&#34; Alternative2&#34;,&#34; Alternative3&#34;和&#34; Alternative4&#34;。 如果&#34; Alternative1&#34;得到了最高的值,我想在我的新变量Alternative1_fc中写一个1 - 如果不是,我想在同一个变量中写一个0。 它应该是这样的:

0 个答案:

没有答案