我正在寻找一种在我的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。
它应该是这样的: