小编Dam*_*mbo的帖子

在R中循环读取许多文件

我一直想知道是否有人知道如何创建一个在R中加载文件/数据库的循环.说我有一些这样的文件:data1.csv,data2.csv,...,data100.csv.

在某些编程语言中,您可以执行类似此数据+ {x} + .csv的操作,系统将其识别为datax.csv,然后您可以应用循环.

有任何想法吗?

loops r

34
推荐指数
5
解决办法
6万
查看次数

如何传播具有重复标识符的列?

A有以下几个:

structure(list(age = c("21", "17", "32", "29", "15"), 
               gender = structure(c(2L, 1L, 1L, 2L, 2L), .Label = c("Female", "Male"), class = "factor")), 
          row.names = c(NA, -5L), class = c("tbl_df", "tbl", "data.frame"), .Names = c("age", "gender"))

    age gender
  <chr> <fctr>
1    21   Male
2    17 Female
3    32 Female
4    29   Male
5    15   Male
Run Code Online (Sandbox Code Playgroud)

我试图用它tidyr::spread来实现这个目标:

  Female Male
1    NA     21
2    17     NA
3    32     NA
4    NA     29
5    NA     15
Run Code Online (Sandbox Code Playgroud)

我认为spread(gender, age)会工作,但我收到一条错误消息:

Error: Duplicate …
Run Code Online (Sandbox Code Playgroud)

r tidyr

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

如何防止xlim使用geom_curve改变高度?

我有以下代码:

library(tidyverse)
data_frame(x = 1:5, x1=x+1, c = c('a','a','a','b','b')) %>% 
      ggplot() +
      geom_curve(aes(x = x, xend= x1, y = 0, yend = 0), curvature = -1.3, alpha=.2) +
    facet_wrap(~ c, ncol=1)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述 但是我想调整y轴的极限以将背景区域切割到〜.1以上.

我试着这样做:

data_frame(x = 1:5, x1=x+1, c = c('a','a','a','b','b')) %>% 
  ggplot() +
  geom_curve(aes(x = x, xend= x1, y = 0, yend = 0), curvature = -1.3, alpha=.2) +
  facet_grid(c ~ .) +
  ylim(0,.35) +
  facet_wrap(~ c, ncol=1)
Run Code Online (Sandbox Code Playgroud)

但它只是根据中的值重新调整拱门ylim.我该如何防止这种行为?

r ggplot2

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

如何用负r在极坐标中绘制点?

我正在尝试在极坐标(r,theta)中绘制两个点,其中r是距中心的距离,theta是角度。

当前的解决方案不起作用,因为我没有轴的唯一“原点”。使用时coord_plane,y的原点是圆的中心,但是x的原点似乎是每个半径的中心。

我正在尝试做的是在以下示例中的两个点相对于原点对称的系统中进行绘制。

library(ggplot2)
ggplot(data.frame(r = c(-100, 100) , theta = c(1, 1)),
       aes(x = r, y= theta)) +
  geom_text(aes(label = paste(round(r, 1),',', round(theta, 1)))) +
  coord_polar(theta = 'y',
              direction = -1,
              start = -pi/2) +
  scale_y_continuous(limits = c(0, 2*pi),
                     breaks = c(0, pi/2, pi, 3*pi/2 ),
                     labels = c('0', 'pi/2', 'pi', '3/2pi'))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

更新:

尽管coord_polar创建的系统可能不是“直的”极坐标系统,但这是图形语法的引言,部分引用了部分行为coord_polar,并解释了为什么我必须解决以下限制y

我们可以将极坐标视为该系统中所有其他比例尺处理方式的例外。也就是说,我们可以将角度值绝对解释为弧度。如果我们所有的图形都是涉及弧度的数学或工程应用,这将是有道理的。但是,我们选择不这样做,以便在进行坐标转换时可以隐藏缩放细节。例如,这使用极坐标表示年时间变得容易。因此,在极坐标转换中,我们将最小弧度值的0弧度以数据单位(度,弧度,比例等)对齐,将2S弧度的最大值对齐。循环参数,以及比例函数中的最小和最大参数,使我们可以根据需要创建旋转不止一圈的极坐标图。

r ggplot2

9
推荐指数
2
解决办法
341
查看次数

如何制作可重现的数据库连接示例?

我不时需要制作有关查询数据库时出错的可重现的例子; 有时这些错误无法使用内置数据集重现.

是否有可用于制作可重复示例的公开数据库列表?我知道他的那个

 src_mysql(dbname = "dplyr", 
                 host = "dplyr.csrrinzqubik.us-east-1.rds.amazonaws.com", 
                 port = 3306, 
                 user = "dplyr",
                 password = "dplyr")
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误

Error in .local(drv, ...) : 
  Failed to connect to database: Error: Unknown MySQL Server Host 'dplyr.csrrinzqubik.us-east-1.rds.amazonaws.com' (8)
Run Code Online (Sandbox Code Playgroud)

在臭名昭着的问题如何制作一个伟大的R可重复的例子中,我没有找到任何关于这种特定情况的参考

r dplyr

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

如何根据单个值过滤远程表?

我正在filter()使用%in%但dplyr翻译查询的方式似乎不正确.实际上,%in%运算符可以使用多个值正常工作,但只有单个元素存在时才会运行.在我的原始场景中,过滤值是动态的,因此我希望有一个在两种情况下都有效的函数.

my_db <- src_mysql(dbname = "dplyr", 
                   host = "dplyr.csrrinzqubik.us-east-1.rds.amazonaws.com", 
                   port = 3306, 
                   user = "dplyr",
                   password = "dplyr")
tbl(my_db, "dplyr") %>% filter(carrier %in% c("UA","AA")) #works
tbl(my_db, "dplyr") %>% filter(carrier %in% c("UA")) #doesn't work
Run Code Online (Sandbox Code Playgroud)

我的问题是多个selectInput值的重复创建意外的dplyr(postgres)行为.似乎这个问题也是众所周知的

r dplyr

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

如何创建闪亮的登录页面?

目标是拥有一个闪亮的模块ui1.R,ui2.Rconfirm单击按钮时加载第二个模块.我认为问题is.null(input$confirm)始终是无效的.我需要的是,只需confirm单击一次表达式无效.密码输入后问题非常接近Starting Shiny app,但我试图模块化解决方案.

ui.R

library(shiny)
library(shinyjs)
htmlOutput("page")
Run Code Online (Sandbox Code Playgroud)

server.R

rm(list = ls())
library(shiny)
library(dplyr)
library(shinyjs)
Logged <-  FALSE

shinyServer(function(input, output) {

  source('ui1.R') #login page
  source('ui2.R')


  observeEvent(!is.null(input$confirm), {
    Logged <<- T
  })

  observe({
    if (Logged == FALSE) {
      output$page <- renderUI({ 
        ui1Output('ui1Output') 
      })
      output$lsuId <- renderText({ input$lsuId })
    }
    if (Logged == TRUE) 
    {
      output$page <- renderUI({ ui2 })
    }
  })
  callModule(ui1,'ui1') 
})
Run Code Online (Sandbox Code Playgroud)

ui1.R

library(shinyjs)

ui1Output <-  function(id, …
Run Code Online (Sandbox Code Playgroud)

r shiny

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

如何在多列上拆分kable?

我试图在RMarkdown中为长桌制作一个"纵向"布局kable.例如,我希望将表拆分为两列,如下例所示:

dd <- data.frame(state=state.abb, freq=1:50)
kable(list(state=dd[1:25,], state=dd[26:50,]))
Run Code Online (Sandbox Code Playgroud)

但是,这个hack产生的输出看起来比正常kable输出更差(例如标题不是粗体).是否有"适当"的方式来使用kable

r knitr r-markdown

6
推荐指数
2
解决办法
2919
查看次数

如何使用purrr从列表中提取元素?

我试图用来purrr访问formatted_address此列表中的级别:

tt <- lapply(c('Austin, Texas', 'Houston, Texas'),  
function(x) ggmap::geocode(x, output='all', nameType = 'long', sensor = F))
Run Code Online (Sandbox Code Playgroud)

最终输出应该是元素的向量$ formatted_address : chr "Austin, TX, USA",即c('Austin, TX, USA', 'Houston, TX, USA')

要开始了,我试图抓住第一个列表的两个元素的记录使用标准的索引,然后将其转换为purrr以下这个教程.

例如,我想

> tt[[1]]$results[[1]]$formatted_address
[1] "Austin, TX, USA"
Run Code Online (Sandbox Code Playgroud)

将等同于下面的代码,但它不是:

> map(tt[[1]]$results[[1]], 'formatted_address')
Error in map.poly(database, regions, exact, xlim, ylim, boundary, interior,  : 
  no recognized region names
Run Code Online (Sandbox Code Playgroud)

为什么这两行代码不相同?我怎么能用mapmap_chr创建一个记录向量formatted_address

r purrr

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

如何在 Shiny 中使数据集具有反应性?

我想在我闪亮的应用程序中使用反应性数据集,这样使用该数据集的任何其他对象都可以根据reactiveDf.

在这个例子中,我只输出一个表格,但在我的应用程序中我有其他图表和表格,这个想法是reactiveDf仅通过子集触发渲染。另外,我想使用dplyr.

library(shiny)
library(dplyr)
ui <- shinyUI(fluidPage(
   sidebarLayout(
      sidebarPanel(
        checkboxGroupInput('Category', '',
                           unique(mtcars$carb), selected = unique(mtcars$carb))),
      # Show table of the rendered dataset
      mainPanel(
         tableOutput("df")
      )
   )
))


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

  reactiveDf <- reactive({tbl_df(mtcars) %>% 
                                  filter(carb %in% input$Category)})

   output$df <- renderTable({reactiveDf})
})

shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)

现在,当我运行这个应用程序时,我得到:

Listening on http://127.0.0.1:7032
Warning: Error in UseMethod: no applicable method for 'xtable' 
applied to an object of class "reactive"
Run Code Online (Sandbox Code Playgroud)

并且tableOutput()不显示。

r shiny dplyr

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

标签 统计

r ×10

dplyr ×3

ggplot2 ×2

shiny ×2

knitr ×1

loops ×1

purrr ×1

r-markdown ×1

tidyr ×1