我怎样才能实现SQL的的等价物IN和NOT IN?
我有一个包含所需值的列表.这是场景:
df = pd.DataFrame({'countries':['US','UK','Germany','China']})
countries = ['UK','China']
# pseudo-code:
df[df['countries'] not in countries]
Run Code Online (Sandbox Code Playgroud)
我目前的做法如下:
df = pd.DataFrame({'countries':['US','UK','Germany','China']})
countries = pd.DataFrame({'countries':['UK','China'], 'matched':True})
# IN
df.merge(countries,how='inner',on='countries')
# NOT IN
not_in = df.merge(countries,how='left',on='countries')
not_in = not_in[pd.isnull(not_in['matched'])]
Run Code Online (Sandbox Code Playgroud)
但这似乎是一个可怕的kludge.任何人都可以改进吗?
因此,如果我手动运行管道工命令,我有一个可以在本地和服务器上正常工作的 API,我的意思是在服务器中 ssh-ing 并运行:
r <- plumb("plumber.R")
r$run(port=8000, host = "0.0.0.0")
Run Code Online (Sandbox Code Playgroud)
它看起来像这样:
#* @serializer contentType list(type="application/html")
#* @get /test
function(res){
include_rmd("test.Rmd", res)
}
#* Echo the parameter that was sent in
#* @param msg The message to echo back.
#* @get /echo
function(msg=""){
list(msg = paste0("The message is: '", msg, "'"))
}
Run Code Online (Sandbox Code Playgroud)
他们都没有问题。但是当我使用 systemd 使它们在服务器上保持活动状态时,只有 /echo 有效。另一个只是说“发生异常”。
systemd 设置如下所示:
[Unit]
Description=Plumber API
# After=postgresql
# (or mariadb, mysql, etc if you use a DB with Plumber, otherwise leave this commented) …Run Code Online (Sandbox Code Playgroud) 这是从这里交叉发布的(https://community.rstudio.com/t/accessing-row-clicks-in-data-table-in-modal/8961),尚未回复。
我正在模式内使用 Shiny 中的 DT 包绘制数据表。这对于我的 UI 来说非常有用,但我希望用户能够单击它并访问他们单击的行。通常的 input$tablename_rows_clicked 不起作用,因为它在 UI 中没有给出一个插槽。
有没有一种聪明的 DT 类型的方法来做到这一点?或者是否有一种聪明的 JavaScript 方法?有人有什么建议吗?
谢谢!