小编Kir*_*-CO的帖子

闪亮的动态绘图高度

我有一个闪亮的应用程序,其中绘图需要根据用户输入调整高度.基本上,该图可以有一个,两个或四个子图.当有一个或两个时,一切都很好,但有四个,子图被压扁到太小的尺寸.我试过用一个反应函数给我一个服务器的计算高度,但是我得到了这个错误:

Error in .getReactiveEnvironment()$currentContext() : 
  Operation not allowed without an active reactive context. (You tried to do something that can only be done from inside a reactive expression or observer.)
Run Code Online (Sandbox Code Playgroud)

我试图做的一个非常简化的版本是:

library(shiny)

ui <- fluidPage(

   fluidRow(
      column(2, 
             radioButtons( inputId = 'plotcount', label = 'Plot Count', 
                                 choices = c('1' = 1, 
                                             '2' = 2,
                                             '4' = 4
                                 ),
                           selected = '1'
             )
      ),
      column(10, 
             plotOutput( outputId = 'plots' )
      )
   )
)

server <- function(input, output) {

   PlotHeight = reactive(
      return( …
Run Code Online (Sandbox Code Playgroud)

r shiny

11
推荐指数
1
解决办法
3540
查看次数

从命令行安装 R 包

我需要从命令行构建可重现的 R 安装。看起来很简单,所以我用我感兴趣的包名创建了一个文件,例如

包.txt:

ggvis
glmnet
caret
Run Code Online (Sandbox Code Playgroud)

一个名为 installPkgs.R 的 R 脚本:

f = read.csv('packages.txt', header=FALSE)
z = install.packages(f[,1], repos='https://cran.rstudio.com')   
Run Code Online (Sandbox Code Playgroud)

然后我应该能够从命令行运行它:

Rscript installPkgs.R
Run Code Online (Sandbox Code Playgroud)

当我这样做时,软件包已下载但未安装。我错过了什么?

r

6
推荐指数
1
解决办法
3904
查看次数

reticulate 看不到 conda 环境中的系统库

我正在尝试reticulate使用 RStudio Server v1.2.5042 以及使用conda. 当我使用 启动 Python 作业时reticulate,出现错误,指出某些系统库的版本不正确,特别libstdc++.so.6是 和libz.so.1

首先,我意识到 CentOS 7.8 有点旧,一些问题可以通过升级操作系统来解决,但在这种情况下这不是一个选择。

conda环境确实有效,我可以在终端窗口中运行目标 Python 脚本,不会出现任何错误。在RStudio中使用reticulate,此时代码非常简单:

   library(reticulate)
   use_condaenv('test')
   py_run_file('test_script.py')
Run Code Online (Sandbox Code Playgroud)

当脚本运行时,我收到以下错误:

ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/<user>/.conda/envs/test/lib/python3.8/site-packages/scipy/_lib/_uarray/_uarray.cpython-38-x86_64-linux-gnu.so)

当我查看/usr/lib64目录时,我发现libstdc++.so,但运行strings libstdc++.so | grep ^GLIBC | sort显示它确实不支持 version GLIBCXX 3.4.21。没有什么惊喜。如果我导航到该/home/<user>/.conda/envs/test/lib目录,我会找到另一个副本libstdc++.so.6,并且这个副本确实支持 version GLIBCXX 3.4.21。因此,正确的环境目录中存在正确版本的库conda,但由于某种原因 RStudioreticulate找不到它。

我尝试更改LD_LIBRARY_PATHconda首先列出环境目录,但这不起作用。我在这里 …

python r libstdc++ conda reticulate

6
推荐指数
1
解决办法
646
查看次数

PyInstaller:"没有名为Tkinter的模块"

我已经构建了一个使用Tkinter的Python(2.7)应用程序,并尝试使用Pyinstaller(3.2)构建Windows7 .exe.在Windows中找到的应用程序工作是我运行它python myapp.py,但一旦编译成pyinstaller distributable,我收到此错误消息:

ImportError: No module named Tkinter
Run Code Online (Sandbox Code Playgroud)

可以肯定的是,myapp.py的顶部包含:

from copy import deepcopy
import cPickle as pickle
import Tkinter as tk
from PIL import ImageTk
Run Code Online (Sandbox Code Playgroud)

检查分发目录,我看到tk85.dll,tcl85.dll和两个相关的目录,tcl /和tk /

我发现了许多对辅助Tkinter依赖项的引用,例如matplotlib,它导入了Tkinter itslef,但我没有找到像这样的直接依赖的任何细节.

任何想法如何使这个工作?

tkinter pyinstaller python-2.7

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

Fedora 24 上的 libicu 和 stringi 导致 R 问题

我最近升级到 F24,现在在我的 R 会话中我无法加载几个包,sp。reshape2、latex2exp、knitr 等。

我发现的最初问题是 F24 使用 libicu56,而这些包使用 libicu54。我按照此线程中的建议 设置具有所需版本的符号链接:

ln -s /usr/lib64/libicui18n.so.56 /usr/lib64/libicui18n.so.54    
ln -s /usr/lib64/libicuuc.so.56 /usr/lib64/libicuuc.so.54
ln -s /usr/lib64/libicudata.so.56 /usr/lib64/libicudata.so.54
Run Code Online (Sandbox Code Playgroud)

最初的错误消失了,但现在我有了:

Error in dyn.load(file, DLLpath = DLLpath, ...) : 
   unable to load shared object '/home/uname/R/x86_64-redhat-linux-gnu-library/3.3/stringi/libs/stringi.so':
  /home/uname/R/x86_64-redhat-linux-gnu-library/3.3/stringi/libs/stringi.so: undefined symbol: _ZTIN6icu_548ByteSinkE
Run Code Online (Sandbox Code Playgroud)

这导致我使用 R 的 stringi 包,但我无法加载它 - 它给出了相同的错误。

我也更新了 F24 和所有 R 包。

有任何想法吗?

r fedora

5
推荐指数
2
解决办法
728
查看次数

为rstudio设置默认PDF查看器

在Rstudio中使用knitr,当.Rmd文件编织为PDF时,生成的文件查看器就是evince.我非常想将此更改为okular,但我无法找到实现此目的的方法.

查看Sweave设置,我看到预览中注明了"系统查看器",但okular已经设置为我的默认系统查看器.我还用xdg-mime检查了默认查看器,okular也是默认查看器.在所有其他情况下,okular是默认值,但Rstudio/knitr总是使用evince.

我该如何改变这种行为?

pdf r rstudio knitr

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

从shell访问R会话中设置的环境变量

在我的R会话中,我正在设置一些环境变量

Sys.setenv(BLAH="blah")
Run Code Online (Sandbox Code Playgroud)

当我切换到终端(Ctrl-Z)然后尝试访问环境变量时,我发现它没有设置.

echo $BLAH
Run Code Online (Sandbox Code Playgroud)

问题是,我从R设置的环境变量在哪里,如果我想让另一个进程看到它,我怎样才能访问它?

r

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

apply和sapply中的is.numeric

在编写R代码以识别具有数字数据的列时,我遇到了一些问题并在SO上发现了这个问题: 是否有使用is.numeric的矢量化方法?

在那个页面中,我找到了答案,但我对问题本身的性质感到困惑.在该页面上,以下代码片段执行我期望的操作:

> dat <- data.frame(v1=1:5,v2=letters[1:5],v3=rnorm(5),v4=c(1,2,'c','d',5))

> sapply(dat,is.numeric)

   v1    v2    v3    v4 
 TRUE FALSE  TRUE FALSE 
Run Code Online (Sandbox Code Playgroud)

但如果我改变申请,我会找到导致我问题的原因.

> dat <- data.frame(v1=1:5,v2=letters[1:5],v3=rnorm(5),v4=c(1,2,'c','d',5))

> apply(dat,2,is.numeric)

   v1    v2    v3    v4 
FALSE FALSE FALSE FALSE 
Run Code Online (Sandbox Code Playgroud)

为什么申请和sapply导致不同的评估?

r

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

使用 LaTeX 在 RMarkdown 中制作漂亮的方程式

我正在尝试在 RMarkdown 中创建格式良好的方程,但我似乎无法将它正确地输入到 Knit 中。我拥有的 LaTeX 块如下所示:

---
title: "Untitled"
author: "KirkD-CO"
date: "September 18, 2019"
output: pdf_document
---

$$
f(x) = \beta_0 + \beta_1 x + \beta_2 x^2 + \beta_3 x^3 + \beta_4 (x-\xi)^3_+
\\
\begin{equation}
  (x-\xi)^3_+ =
    \begin{cases}
      (x-\xi)^3 \ , \  x>\xi
      \\
      0 \ \ \ \ \ \ \ \ \ \ \ \ \ , \ x\leq\xi
    \end{cases}       
\end{equation}
\\ 
\
\\
\begin{aligned}
  (x \leq \xi) \Rightarrow f(x) &= \beta_0 + \beta_1 x + …
Run Code Online (Sandbox Code Playgroud)

latex r rstudio r-markdown

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

使用列控制Shiny仪表板中的tabBox内容

我正在尝试构建一个Shiny仪表板页面,该页面将包含带不同类型图表的选项卡式页面,允许用户动态更改设置等。从Shiny Dashboards页面的标准演示代码开始,我可以得到一个叠加版本的页面(https://rstudio.github.io/shinydashboard/structure.html#tabbox):

library(shiny)
  library(shinydashboard)

  body <- dashboardBody(
     fluidRow(
        tabBox(
           title = "First tabBox",
           # The id lets us use input$tabset1 on the server to find the current tab
           id = "tabset1", 
           tabPanel("Tab1", "First tab content", plotOutput('test')),
           tabPanel("Tab2", "Tab content 2")
        ),
        tabBox(
           side = "right", 
           selected = "Tab3",
           tabPanel("Tab1", "Tab content 1"),
           tabPanel("Tab2", "Tab content 2"),
           tabPanel("Tab3", "Note that when side=right, the tab order is reversed.")
        )
     ),
     fluidRow(
        tabBox(
           # Title can include an icon
           title = …
Run Code Online (Sandbox Code Playgroud)

r shiny shinydashboard

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

Dockerfiles 中行延续的好处

我最近一直在与 Docker 合作来托管一个 RStudio 服务器实例。有许多软件包需要安装,在 Dockerfile 中执行此操作的一种方法是(显然还有更多行):

RUN Rscript -e "install.packages('beanplot')"
RUN Rscript -e "install.packages('beeswarm')"
RUN Rscript -e "install.packages('boot')"
RUN Rscript -e "install.packages('caTools')"
Run Code Online (Sandbox Code Playgroud)

我看到很多这样的例子:

RUN Rscript -e "install.packages(c('beanplot','beeswarm','boot','caTools'))
Run Code Online (Sandbox Code Playgroud)

此外,我经常看到像这样链接在一起的各种可执行行:

RUN yum -y update \
 && yum -y groupinstall 'Development Tools' \
 && yum -y install epel-release \
                   vim \
                   initscripts \
                   libpng-devel \
                   mesa-libGL \
                   mesa-libGL-devel \
                   mesa-libGLU \
                   mesa-libGLU-devel \
                   ypbind \
                   rpcbind \
                   authconfig \
 && yum -y install R \  
 && mkdir /rhome
Run Code Online (Sandbox Code Playgroud)

而不是将 is && 行作为单独的 …

docker

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