我试图获取数据框中的所有行,其中列值不在列表中(因此通过排除进行过滤).
举个例子:
df = sqlContext.createDataFrame([('1','a'),('2','b'),('3','b'),('4','c'),('5','d')]
,schema=('id','bar'))
Run Code Online (Sandbox Code Playgroud)
我得到了数据框:
+---+---+
| id|bar|
+---+---+
| 1| a|
| 2| b|
| 3| b|
| 4| c|
| 5| d|
+---+---+
Run Code Online (Sandbox Code Playgroud)
我只想排除bar所在的行('a'或'b').
使用SQL表达式字符串,它将是:
df.filter('bar not in ("a","b")').show()
Run Code Online (Sandbox Code Playgroud)
有没有办法在不使用SQL表达式的字符串或一次排除一个项目的情况下执行此操作?
编辑:
我可能有一个列表,['a','b'],我想要使用的排除值.
我想使用数据框在selectInput中设置选项.下面我有一个工作的例子,这给出了选项"Peter","Bill"和"Bob",但我希望这些是标签,并设置L1Data $ ID_1的值.通常使用以下代码编写的东西:
selectInput("partnerName", "Select your choice", c("Peter" = "15","Bob" = "25","Bill" = "30" ) )
Run Code Online (Sandbox Code Playgroud)
有关获得此功能的任何建议吗?
ui.R
library(shiny)
shinyUI(pageWithSidebar(
headerPanel("Test App"),
sidebarPanel(
sliderInput("obs", "Number of observations:", min = 1, max = 1000, value = 500),
htmlOutput("selectUI")
),
mainPanel(
plotOutput("distPlot")
)
))
Run Code Online (Sandbox Code Playgroud)
server.R
library(shiny)
ID_1 <- c(15,25,30,30)
Desc_1 <- c("Peter","Bob","Bill","Bill")
L1Data <- data.frame(ID_1,Desc_1)
shinyServer(function(input, output) {
output$distPlot <- renderPlot({
dist <- rnorm(input$obs)
hist(dist)
})
output$selectUI <- renderUI({
selectInput("partnerName", "Select your choice", unique(L1Data$Desc_1) )
})
})
Run Code Online (Sandbox Code Playgroud)