小编mat*_*sho的帖子

条件面板未按预期显示,但会显示警告消息

我有一个带条件面板的应用程序,它依赖于一系列用户选择.提供一个可重复的示例太复杂了,但我会尝试提供一个简化版本来获取我要求的内容,并且还包括实际应用程序中的相关部分.

在我的应用程序中,如果用户加载Excel文件然后从单选按钮中选择另一个条件,则会出现某个条件面板.如果加载了Excel文件并进行了适当的选择,则给定的条件面板将按预期显示.如果加载了csv文件,则不会显示条件面板,但是应该有一个红色消息object sheetrID not found.错误(实际上是Shiny中的一个警告)纯粹是装饰性的,但我想了解为什么会发生这种情况.

作为一种方法,在这个简单的应用程序中,在条件面板上获取类似错误消息的方法是:

library(shiny)

ui <- fluidPage(

  column(3,
         h3("Add new data"),
         uiOutput("dummyslider")
  ), # close column

  column(9,
         h3("Matching"),
         uiOutput("condition_select")
  ) # close column

) # close fluidPage


server <- function(input, output, session) {

  output$dummyslider <- renderUI({ 
    sliderInput(inputId = "num",
                label = "Choose a number",
                value = 25, min = 1, max = 100)
  })

  output$condition_select <- shiny::renderUI({
  shiny::conditionalPanel(
    condition="input.num > 40",
    shiny::sliderInput(
      inputId="slider2",
      label="test label",
      min=0,
      max=1,
      value=0.1,
      step=0.01
    )
  )
})

} # close …
Run Code Online (Sandbox Code Playgroud)

r shiny

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

如何从同一自定义 R 包函数中调用 3 种不同算法的预测?

我正在开发一个自定义 R 包(它是私有的,不在任何地方托管)。在这个包中,我有一个函数,它采用 xgboost、RandomForest(来自 ranger 函数)和 glmnet 模型,并使用它们来预测新数据集。

每次预测时,我都会使用相同的广义预测函数。如果我没有为函数命名空间,R 就不知道使用哪个库来进行预测。

我得到的错误是:

Error in UseMethod("predict") : 
  no applicable method for 'predict' applied to an object of class "c('lognet', 'glmnet')" 
Run Code Online (Sandbox Code Playgroud)

如果我手动加载函数,它可以工作,但我知道在 R 库中手动加载包是一个禁忌。

我尝试使用 glmnet::glmnet.predict 等,但这也给了我错误。命名这些预测函数以避免手动加载库的正确方法是什么?

r r-library

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

在Rshiny中显示逗号和条件突出显示 - 不兼容

我有一个Shiny应用程序渲染数据表,我希望在其中包含2个条件格式化功能

  1. 将逗号添加到大于1000的数字
  2. 当第2列中的值列2值> = 1.3x时,将蓝色背景应用于第2列值.当第2列值为第1列中的<= .7x值时应用红色背景.

我问了一个关于如何在这篇SO帖子中加入逗号的问题.我在下面的脚本中删除了rowcallback参数,逗号正确呈现.同样,如果我注释掉dom和formatCurrency参数,突出显示条件fomatting也会正确呈现.

  js_cont_var_lookup <- reactive({
  JS(
      'function(nRow, aData) {
      for (i=2; i < 3; i++) {
      if (parseFloat(aData[i]) > aData[1]*(1.03)) {
        $("td:eq(" + i + ")", nRow).css("background-color", "aqua");
         }
        }
       for (i=2; i < 3; i++) {
       if (parseFloat(aData[i]) < aData[1]*(.7)) {
        $("td:eq(" + i + ")", nRow).css("background-color", "red");
         }
        }
       }'
      ) # close JS
})

shinyApp(
  ui = fluidPage(
    DTOutput("dummy_data_table")
  ),
  server = function(input, output) {
    output$dummy_data_table <- DT::renderDataTable(
      data.frame(A=c(100000, 200000, …
Run Code Online (Sandbox Code Playgroud)

javascript r shiny

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

R 和 Python 之间加权 t 检验的不同结果

我正在 Python 中运行加权 t 测试,但看到了不同的结果。看来问题是自由度计算。想了解为什么我看到不同的输出。

这是一些示例代码。

在 R 中:

library(weights)
x <- c(373,398,245,272,238,241,134,410,158,125,198,252,577,272,208,260)
y <- c(411,471,320,364,311,390,163,424,228,144,246,371,680,384,279,303)

weightsa = c(rep(1,8), rep(2,8))
weightsb = c(rep(2,8), rep(1,8))

wtd.t.test(x = x,
           y = y,
           weight = weightsa,
           weighty = weightsb, samedata=F)

$test [1] "Two Sample Weighted T-Test (Welch)"

$coefficients
    t.value          df     p.value 
-1.88907197 29.93637837  0.06860382 

$additional Difference     Mean.x     Mean.y   Std. Err   -80.50000 
267.12500  347.62500   42.61352
Run Code Online (Sandbox Code Playgroud)

在 Python 中:

import numpy as np
from statsmodels.stats.weightstats import ttest_ind
x = np.asarray([373,398,245,272,238,241,134,410,158,125,198,252,577,272,208,260])
y = np.asarray([411,471,320,364,311,390,163,424,228,144,246,371,680,384,279,303])

weightsa = …
Run Code Online (Sandbox Code Playgroud)

python r t-test

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

在输出到Shiny app之前,在DT包中更改列名

我想在最后一步更改数据的列名,然后在Shiny应用程序中输出它.显示名称很长,我不想在操作数据表时更改它们.在我的实际数据集中,数据表的格式更改比下面的更多.

这是一个虚拟数据集:

library(DT)
test.df <- data.frame(a = runif(10), b = 21:20, c = 31:30, d = 31:40)
test.dt <- datatable(test.df) %>% formatPercentage('a', 0) %>% formatCurrency('c', '$')
Run Code Online (Sandbox Code Playgroud)

现在,我如何将列名更改为c('Col1','Col2','Col3','Col4')?同样,我希望这是我用renderDataTable函数输出数据表之前的最后一步.

如果有一种方法可以创建列别名而不是更改实际的列名,那么这也可以.

r shiny dt

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

在 dplyr 中使用带有部分列名向量的 starts_with

我想使用 dplyr 来选择与字符串向量匹配的某些列。

one <- seq(1:10)
two <- rnorm(10)
three <- runif(10, 1, 2)
four <- -10:-1

df <- data.frame(one, two, three, four)

vars <- c('on', 'thr')
Run Code Online (Sandbox Code Playgroud)

我只想选择 df 中标题以“on”或“thr”开头的列:

dplyr::select_(df, starts_with(vars))
Run Code Online (Sandbox Code Playgroud)

但是,上述方法不起作用。

r dplyr

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

stringdist包中的Jaccard相似性可匹配字符串中的单词

我想在stringdist函数中使用Jaccard相似度来确定单词袋的相似度。据我所知,使用Jaccard仅可匹配字符串中的字母。

c <- c('cat', 'dog', 'person')
d <- c('cat', 'dog', 'ufo')

stringdist(c, d, method='jaccard', q=2)
[1] 0 0 1
Run Code Online (Sandbox Code Playgroud)

因此,我们在这里看到它计算了“ cat”和“ cat”,“ dog”和“ dog”以及“ person”和“ ufo”的相似性。

我还尝试将单词转换为1个长文本字符串。以下方法满足了我的需要,但仍在计算1-(共享2克数/唯一2克总数):

f <- 'cat dog person'
g <- 'cat dog ufo'
stringdist(f, g, method='jaccard', q=2)
[1] 0.5625
Run Code Online (Sandbox Code Playgroud)

如何通过单词计算相似度?

text r stringdist

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

在函数中获取过滤器以进行整洁的评估

我正在尝试使用 dplyr 根据动态变量进行过滤。

我发现要使过滤器正常工作,我需要将变量名称括在括号中。但是,如果我将其编程为一个函数,它就无法正常工作。

df_ex <- data.frame(a = 1:10, b = 11:20)

param <- quo(a)

# returns df_ex with column a, only, as expected
df_ex %>%
dplyr::select(!!param)

# returns expected df
df_ex %>%
dplyr::filter((!!param)==5)

# Now for the function
testfun <- function(test_df, filt_var){
   filt_var_mod <- quo(filt_var)

   test_df %>%
    dplyr::filter((!!filt_var_mod)==5)
}

# returns empty df, not as expected
testfun(df_ex, "a")
Run Code Online (Sandbox Code Playgroud)

我想学习为自己找到这些关于 dplyr 的问题类型的答案,所以请随时向我推荐编程小插图的相关部分

r dplyr rlang

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

如何使用purrr tilde函数与多行公式

我想用purrr的短手配方规​​范和多行公式.

例如,我想重新调整以下公式:

purrr::imap_chr(sample(10), ~ paste0(.y, ": ", .x))
Run Code Online (Sandbox Code Playgroud)

而是执行以下操作:

purrr::imap_chr(sample(10), ~ 
     b <- 10
     paste0(.y, ": ", .x + b))
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试这样做时收到错误:

错误:意外符号:"b < - 10 paste0"

r purrr

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

如何从R中的等式绘制平面

我一直在修改RGL包来弄清楚如何从R中的等式绘制一个平面,但无济于事.

例如,我想想象下面的平面:

1x + 0y + 0z = 2
0x + 1y + 0z = 3
0x + 0y + 1z = 4
Run Code Online (Sandbox Code Playgroud)

似乎rgl的planes3d函数只为现有的3D绘图添加了一个平面.

3d visualization r rgl

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

git ls-remote和git ls-remote origin之间的区别

跑步git ls-remote和有git ls-remote origin什么区别?它似乎git ls-remote输出原始存储库的每个分支和标记的SHA1 ID.由于原始repo默认标题为origin,因此看起来这两个命令产生相同的输出.它是否正确?

git

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

标签 统计

r ×10

shiny ×3

dplyr ×2

3d ×1

dt ×1

git ×1

javascript ×1

purrr ×1

python ×1

r-library ×1

rgl ×1

rlang ×1

stringdist ×1

t-test ×1

text ×1

visualization ×1