小编ash*_*ych的帖子

Skimr - 似乎无法生成直方图

遇到了这个看似新的软件包 - skimr,它看起来很漂亮,并且正在尝试它,看起来我缺少一些软件包安装。Skim 工作正常,只是它不打印直方图,它应该打印数字变量。我只是尝试文档中给出的示例。

此处链接到 skimr 文档 - https://github.com/ropenscilabs/skimr#skimr

这是我正在使用的代码

    devtools::install_github("hadley/colformat")
    devtools::install_github("ropenscilabs/skimr")
    library(skimr)
    a<-skim(mtcars)
    dim(a)
    View(a)
Run Code Online (Sandbox Code Playgroud)

我看到的是一些 ASCII/unicode 字符,而不是打印直方图在此输入图像描述

r summary histogram skimr

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

updateSelectinput抛出会话未找到错误

我正在使用此代码,并在updateSelectInput中遇到错误:找不到对象'session'.当我尝试通过fileInput选项上传任何文件时会发生这种情况.当我删除updateSelectInput语句时,表打印正常.(请注意,我提供了重现问题所需的最小代码,代码中不包含我希望使用SelectInput输入的部分).

library(shiny); library(shinythemes); library(DT)

ui<- fluidPage(
  sidebarLayout(
    sidebarPanel(
      fileInput(inputId = "default_csv",label="input the file"),
      selectInput(inputId = "facility_id1", label="Choose the facilityID column", choices ="FacilityID"),
      numericInput(inputId = "obs", label="Choose number of obs", value=10)
    ),
    mainPanel(
      dataTableOutput(outputId = "table")
    )
  )
)



server<- function(input, output){

  data_set <- reactive({
    data_set<-read.csv(input$default_csv$datapath, stringsAsFactors = FALSE)
    })
  observe({
    req(input$default_csv)
    dsnames <- names(data_set())

    updateSelectInput(session, "facility_id1", label = "Facility ID", 
                      choices = dsnames, selected = "")

    cat("update done")
  })
  output$table<- renderDataTable(head(data_set(),n=input$obs))
}

shinyApp(ui=ui, server=server)

Warning: Error in updateSelectInput: object 'session' …
Run Code Online (Sandbox Code Playgroud)

r shiny

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

如何测试 R 中一系列列的条件

我正在尝试测试一系列列中的条件。数据看起来像这样

      Name DPD_1 DPD_2 DPD_3 Default_flag
 1:    A    46    63   138         TRUE
 2:    B    12    82    33        FALSE
 3:    C    95    71    55         TRUE
 4:    D    57   133   116         TRUE
 5:    E    48    27   137         TRUE
Run Code Online (Sandbox Code Playgroud)

在代码中,我需要测试 DPD_1、DPD_2 或 DPD_3 中的任何一个是否大于 90,在这种情况下 Default_flag 设置为 TRUE。

我为此使用的代码如下

df1 <- data.table(Name = LETTERS[1:10],DPD_1 = sample(1:100,10),DPD_2 = sample(1:200,10),DPD_3 = sample(1:200,10) )
df1[,Default_flag := ifelse((DPD_1>=90 | DPD_2>=90 | DPD_3>=90 ),TRUE,FALSE)]
Run Code Online (Sandbox Code Playgroud)

现在问题出在一些数据集上,我需要将 DPD 检查从 DPD_1 增加到 DPD_24(检查 24 列,而不是当前示例中的 3 列)。无论如何我可以避免在 ifelse 语句中指定每个 DPDnumber。我很高兴失去 ifelse …

if-statement r

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

融化数据框 - 多列 - “来自 data.tables 的增强(新)功能”

更新:我应该更清楚的是,我试图检查使用 data.tables https://cran.r-project.org/web/packages/data.table/vignettes/datatable-reshape.html重塑的增强功能. 更新了标题。

我有这个包含两组变量的数据集 - Credit_Risk_Capital 和 Name_concentration。它们是按 2 种方法计算的 - 新的和旧的。当我使用 data.table 包融化它们时,变量名称默认为 1 和 2。如何将它们更改为 Credit_Risk_Capital 和 Name_Concentration。

这是数据集

    df <-data.table (id = c(1:100),Credit_risk_Capital_old= rnorm(100, mean = 400, sd = 60),
             NameConcentration_old= rnorm(100, mean = 100, sd = 10),
             Credit_risk_Capital_New =rnorm(100, mean = 200, sd = 10),
             NameConcentration_New = rnorm(100, mean = 40, sd = 10))
    old <- c('Credit_risk_Capital_old','NameConcentration_old')
   new<-c('Credit_risk_Capital_New','NameConcentration_New')
  t1<-melt(df, measure.vars = list(old,new), variable.name = "CapitalChargeType",value.name = c("old","new"))
Run Code Online (Sandbox Code Playgroud)

现在,不再将 CapitalChargeType 列中的元素标记为 1 和 2,而是希望将它们更改为 Credit_risk_Capital …

r melt data.table

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

标签 统计

r ×4

data.table ×1

histogram ×1

if-statement ×1

melt ×1

shiny ×1

skimr ×1

summary ×1