小编Zer*_*ack的帖子

如何在Shiny应用程序中访问/打印/跟踪当前选项卡选项?

我正在一个闪亮的应用程序中工作,我希望能够访问用户在会话中当前选项卡上的信息.

我有一个observe事件,它监听要点击的特定按钮.简单来说,我想存储/打印用户单击此按钮时当前的选项卡.单击此按钮后,使用updateTabItems将选项卡更改为"help",updateTabItems将session,inputId和所选值作为参数.

# Observe event when someone clicks a button
observeEvent(input$help, {
  # if they are logged in
  if(USER$Logged == TRUE) {

     # current_tab <- ???
     shiny_session <<- session
    updateTabItems(session, "sidebar", selected = "help")
  }
})
Run Code Online (Sandbox Code Playgroud)

由于会议具有一些价值,我试图探索它.

> class(shiny_session)
[1] "ShinySession" "R6"

> names(shiny_session)
 [1] ".__enclos_env__"     "session"            
 [3] "groups"              "user"               
 [5] "singletons"          "request"            
 [7] "closed"              "downloads"          
 [9] "files"               "token"              
[11] "clientData"          "output"             
[13] "input"               "progressStack"      
[15] "clone"               "decrementBusyCount" 
[17] "incrementBusyCount"  "outputOptions"      
[19] "manageInputs"        "manageHiddenOutputs"
[21] "registerDataObj"     "registerDownload"   
[23] "fileUrl"             "saveFileUrl" …
Run Code Online (Sandbox Code Playgroud)

session tabs r shiny

7
推荐指数
1
解决办法
4527
查看次数

R 闪亮观察行取消选择数据表

我有一个闪亮的应用程序,它有一个 DT::renderDataTable,用户可以在数据表中选择一行。

以下代码将仅打印 FALSE(当选择一行时):

observeEvent(input$segment_library_datatable_rows_selected, {
  print(is.null(input$segment_library_datatable_rows_selected))
})
Run Code Online (Sandbox Code Playgroud)

当一行也被取消选择时,如何打印它?(打印值将为 TRUE)

r observable shiny dt

7
推荐指数
2
解决办法
4201
查看次数

R plotly版本4.5.2散点图传奇气泡大小设置

我在R中使用了plotly 4.5.2.我创建了一个在变量上调整大小的散点图,问题是这些大小也反映在图例中,这使得它们难以阅读.

我希望我的图形保持不变,唯一的例外是图例中气泡的大小.这些气泡可以设置为全部相同的尺寸或缩放到更小的尺寸.重要的是,图表中的大小必须保持不变.

在此输入图像描述

请在此处找到可重现的代码:

library(plotly)

data <- data.frame(name = c('test1', 'test2', 'test3', 'test4'),
                      x = c(1, 15, 90, 45),
                      y = c(9, 43, 43, 53),
                      size = c(10000, 50000, 90000, 3000),
                      colour = c("rgba(230, 42, 56, 0.3)", "rgba(76, 175, 80, 0.3)",
                                 "rgba(32, 169, 242, 0.3)", "rgba(255, 193, 7, 0.3)")
                      )

plot <- plot_ly(data = data) %>% 
  add_trace(x = ~x,
            y = ~y,
            mode = 'markers',
            type = 'scatter',
            color = ~name,
            marker = list(
              color = ~colour,               
              opacity = 1, …
Run Code Online (Sandbox Code Playgroud)

r scatter legend scatter-plot plotly

5
推荐指数
1
解决办法
2243
查看次数

如何正确使用带有apply功能的pandas groupby来解决副作用?(第一组申请两次)

我正在使用 Pandas 对数据框中的某些列进行分组,并将自定义函数应用于这些组。应用函数利用副作用并作用于函数内的全局数据对象。

pandas、groupby 和 apply 的一个记录警告是,按照设计,它在第一组上应用两次调用的函数来决定它是否可以采用快速或慢速的代码路径。这在此处记录:http : //pandas.pydata.org/pandas-docs/stable/groupby.html#flexible-apply

在这里演示:

In [144]: d = pd.DataFrame({"a":["x", "y"], "b":[1,2]})

In [145]: def identity(df):
   .....:     print(df)
   .....:     return df
   .....: 

In [146]: d.groupby("a").apply(identity)
   a  b
0  x  1
   a  b
0  x  1
   a  b
1  y  2
Out[146]: 
   a  b
0  x  1
1  y  2
Run Code Online (Sandbox Code Playgroud)

在此处的其他一些 stackoverflow 帖子中提到:

Python Pandas groupby 对象应用方法复制第一组

Pandas 0.16.1 groupby().apply() 方法是否对同一组多次应用函数?

在 GitHub 上提到:

https://github.com/pandas-dev/pandas/issues/7739

https://github.com/pandas-dev/pandas/issues/19167

这意味着我的副作用在第一组中被调用两次并导致不需要的更改。

我的问题是如何使用 pandas、groupby 和 apply 而不会在第一组(或任何组)上应用两次副作用,并保证它只在每个组上调用一次?

我想在 DataFrame 的顶部创建一个虚拟/假组,但我想将我的问题扩展到 …

python apply dataframe pandas pandas-groupby

5
推荐指数
1
解决办法
616
查看次数

使用 pandas 将每组的唯一值计数为新列

我想计算 pandas 数据框中一组的唯一观察结果,并创建一个具有唯一计数的新列。重要的是,我不想减少数据框中的行;有效地执行类似于 SQL 中的窗口函数的操作。

df = pd.DataFrame({
         'uID': ['James', 'Henry', 'Abe', 'James', 'Henry', 'Brian', 'Claude', 'James'],
         'mID': ['A', 'B', 'A', 'B', 'A', 'A', 'A', 'C']
})

df.groupby('mID')['uID'].nunique()
Run Code Online (Sandbox Code Playgroud)

将获得每个组的唯一计数,但它会总结(减少行数),我实际上想做一些类似的事情:

df['ncount'] = df.groupby('mID')['uID'].transform('nunique')
Run Code Online (Sandbox Code Playgroud)

(这显然行不通)

通过采用独特的汇总数据帧并将其连接到原始数据帧,可以实现所需的结果,但我想知道是否有更简单的解决方案。

谢谢

python group-by dataframe pandas pandas-groupby

4
推荐指数
1
解决办法
5556
查看次数

更改 rmarkdown pdf 输出的背景颜色

我目前正在使用 RStudio 0.98.1091,我正在尝试使用 rmarkdown 包中的渲染功能创建一个 pdf 文档。

R脚本:

library("rmarkdown")
render("input.Rmd", "pdf_document")
Run Code Online (Sandbox Code Playgroud)

输入.Rmd

---
title: "Report"
output: pdf_document 
---


<style>
  body {background-color:lightgray}
</style>
<body>
  <h1>This is a heading</h1>
  <p>This is a paragraph.</p>
</body>
Run Code Online (Sandbox Code Playgroud)

我想设置整个报表的背景色,无奈之下尝试了一些使用html之类的东西;没有结果。

该文档包含用 R 代码块、表格和文本绘制的图形。

同样,我想将文档背景颜色设置为其他颜色(当前为白色)。

谢谢,

零堆栈

我使用的是 OS X 10.10.3,安装了 pandoc 和 MacTex。

pdf r render rstudio r-markdown

3
推荐指数
1
解决办法
4625
查看次数

如何使用服务帐户和bigrquery包进行身份验证?

我已经能够使用googleAuth和使用与服务帐户关联的json文件进行身份验证bigQueryR.

# Load Packages
global.packages <- c("bigQueryR", "googleAuthR")

### Apply require on the list of packages; load them quietly
lapply(global.packages, require, character.only = TRUE, quietly = TRUE)

Sys.setenv("GCS_AUTH_FILE" = "json_file_location")

#Authenticate Google BQ
googleAuthR::gar_attach_auto_auth("https://www.googleapis.com/auth/bigquery",
                                  environment_var = "GCS_AUTH_FILE")
Run Code Online (Sandbox Code Playgroud)

这有效,我可以开始使用来自的功能bigQueryR.

现在假设我仅限于该bigrquery软件包,如何使用此软件包使用服务帐户进行身份验证?

我看过这里的文档无济于事:https: //cran.r-project.org/web/packages/bigrquery/bigrquery.pdf

我在互联网上遇到的资源建议使用 bigQueryR包来代替bigrquery.

例如,这个相关的stackoverflow问题: 在闪亮的应用程序中使用bigrquery auth.

但我需要的功能只有bigrquery.

authentication r google-bigquery server

3
推荐指数
2
解决办法
2678
查看次数

将文件夹中的许多羽毛文件加载到 dask

对于一个包含许多.feather文件的文件夹,我想将它们全部加载到 python 中的 dask 中。

到目前为止,我已经尝试了以下来自 GitHub https://github.com/dask/dask/issues/1277上类似问题的内容

files = [...]
dfs = [dask.delayed(feather.read_dataframe)(f) for f in files]
df = dd.concat(dfs)
Run Code Online (Sandbox Code Playgroud)

不幸的是,这给了我TypeError: Truth of Delayed objects is not supported那里提到的错误 ,但解决方法尚不清楚。

是否可以在 dask 中执行上述操作?

python pandas dask feather

2
推荐指数
1
解决办法
809
查看次数