小编Tre*_*lof的帖子

传说在底部,两行包裹在r中的ggplot2中

Rdates <- c("2007-01-31","2007-02-28","2007-03-30","2007-04-30","2007-05-31","2007-06-29","2007-07-31","2007-08-31","2007-09-28","2007-10-31")
Rdates <- as.Date(Rdates)
Cnames <- c("Column 1 Really Long","Column 2 Really Long","Column 3 Really Long","Column 4 Really Long","Column 5 Really Long","Column 6 Really Long","Column 7 Really Long","Column 8 Really Long","Column 9 Really Long","Column 10 Really Long")
MAINDF <- data.frame(replicate(10,runif(10,-0.03,0.03)))
rownames(MAINDF) <- Rdates
colnames(MAINDF) <- Cnames
CUSTOMpalette <- c("#1a2ffa", "#0d177d", "#1a9ffa", "#fa751a", "#4b8e12", "#6fd21b", "#fae51a", "#c3b104", "#f5df05", "#dcc805")
MAINDF[,"dates"] <- Rdates

MAINDF <- melt(MAINDF,id.vars="dates")

gg <- ggplot(MAINDF, aes(x = dates, y = value, fill = variable))
gg <- …
Run Code Online (Sandbox Code Playgroud)

r legend ggplot2

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

子集列基于列名列表并将列放在其前面

我有一个更大的数据集遵循相同的顺序,一个唯一的日期列,数据,唯一的日期列,日期等.我试图不仅按名称对数据列进行子集,而且还使用唯一的日期列.下面的代码根据名称列表选择列,这是我想要的一部分,但是关于如何在子集列之前立即获取列的任何想法也是如此?

期待最终得到一个包含Date1,Fire,Date3,Earth列的DF(仅使用NameList).

这是我可重现的代码:

Cnames <- c("Date1","Fire","Date2","Water","Date3","Earth")
MAINDF <- data.frame(replicate(6,runif(120,-0.03,0.03)))
colnames(MAINDF) <- Cnames

NameList <- c("Fire","Earth")

NewDF <- MAINDF[,colnames(MAINDF) %in% NameList] 
Run Code Online (Sandbox Code Playgroud)

r subset dataframe

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

获取ggplot2图例以在r中显示百分号

下面是我试图解决的问题的可重现的例子.我已经在ggplot2中创建了各种各样的热图,事情进展顺利.由于我在geom_text上使用了数据的百分号,我想让geom_tile的图例也显示百分号(我现在只能将实际值乘以100).理想情况下,我希望右侧的图例栏显示8%,4%,0%, - 4%, - 8%.

#load in libraries
require(plyr)
require(dplyr)
require(reshape2)
require(ggplot2)
require(scales)

testDF <- structure(list(strategies = structure(c(8L, 7L, 6L, 5L, 4L, 3L, 
                                                  2L, 1L), .Label = c("Class 1", "Class 2", 
                                                                      "Class 3", "Class 4", "Class 5", "Class 6", 
                                                                      "Class 7", "Class 8"), class = "factor"), 
                         School1 = c(0.0355662887589396, 0.0316753241146625, 0.00606392341292672, 
                                     0.0250738342627283, -0.0405709181701368, 0.0237665074609996, 
                                     0.00587364885411765, -0.0343914002059331), School2 = c(NA, NA, 
                                                                                            NA, 0.0225535750673764, NA, -0.00448947685878404, NA, -0.0446386763157662
                                     ), School3 = c(NA, NA, NA, 0.0261099462365593, NA, 0.0199735626692146, 
                                                    NA, -0.0272279264519992), School4 = c(NA, …
Run Code Online (Sandbox Code Playgroud)

r legend ggplot2 legend-properties

10
推荐指数
1
解决办法
4979
查看次数

Ruby on Rails等问题

我有一个应用程序,在布局中我有一个user_name div,根据他们是否登录显示不同的东西,是管理员等.现在我的代码如下:

  <% if current_user.role == "admin" %>
  <p id="admintxt">You are an admin!</p>
      <%= link_to "Edit Profile", edit_user_path(:current) %>
   <%= link_to "Logout", logout_path %>
  <% elsif current_user %>
   <%= link_to "Edit Profile", edit_user_path(:current) %>
   <%= link_to "Logout", logout_path %>
  <% else %>
<%= link_to "Register", new_user_path %>
<%= link_to "Login", login_path %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我已经有一个current_user帮助器,当代码只是时,一切正常:

<% if current_user %>
  <%= link_to "Edit Profile", edit_user_path(:current) %>
  <%= link_to "Logout", logout_path %>
<% else %>
    <%= link_to "Register", new_user_path %>
    <%= …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

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

闪亮的应用运行代码生成pdf然后提供该pdf给用户下载

在我的闪亮应用程序中,我希望能够单击下载按钮,让它执行我在(在一个包中)在/ results文件夹中创建pdf的函数,然后将该创建的文件作为下载提供给闪亮的应用程序用户.我从下面的服务器粘贴了我当前的download_portfolio下载按钮代码(很多部分不确定如何使其可重现).想知道是否有人知道什么是错误的,我收到下面的错误消息,但是FUNCTION_TO_GENERATE_PDF_IN_/results()函数确实运行并创建了PDF,但随后应用程序重新加载,用户永远不会被提示下载.

我收到错误(但是我的函数仍然正确生成了pdf,只是应用程序重新加载,并且没有下载pdf的提议).

   Error in self$downloads$set(name, list(filename = filename, contentType = contentType,  : 
      argument "content" is missing, with no default
Run Code Online (Sandbox Code Playgroud)

app.R代码,我正在下载

observe({
  output$download_portfolio <- downloadHandler({
    FUNCTION_TO_GENERATE_PDF_IN_/results()
    filename = function() { paste(input$pdfname) }
    content = function(file) {
      file.copy(paste("results/",input$pdfname, file, overwrite = TRUE)
    } 
  })
  })
Run Code Online (Sandbox Code Playgroud)

r shiny

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

使用动态列名在 dplyr 中按自定义顺序排列

我正在尝试根据某个列排列一个小标题(但根据变量动态设置的名称设置列)。

以下是我目前正在尝试但出现错误的代码。第二个代码粘贴有效(我在符号的列名中进行了硬编码,我想根据变量进行设置)。

library(tidyverse)

group_var <- "symbol"

date_seq <- seq(as.Date("2000-01-01"), as.Date("2009-12-31"), by = "days")
test_tbl <- tibble::tibble("date" = rep(date_seq, 3),
                           "symbol" = rep(c("test3", "test1", "test2"), each = length(date_seq)),
                           "value" = c(rnorm(length(date_seq), sd = 0.05),
                                       rnorm(length(date_seq), sd = 0.05),
                                       rnorm(length(date_seq), sd = 0.05)))

order_var <- c("test1", "test2", "test3")
test_tbl_final <- test_tbl %>%
  dplyr::arrange(factor(!!group_var, levels = order_var), date)
Run Code Online (Sandbox Code Playgroud)

下面是有效的代码,并显示了我想要完成的工作:

library(tidyverse)

date_seq <- seq(as.Date("2000-01-01"), as.Date("2009-12-31"), by = "days")
test_tbl <- tibble::tibble("date" = rep(date_seq, 3),
                           "symbol" = rep(c("test3", "test1", "test2"), each = length(date_seq)),
                           "value" = …
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

在 R 中查找特定月份的第一天

我目前有一列“月”和一列“DayWeek”,其中写出了一周中的月份和日期。使用下面的代码,我可以在 2 月、5 月、8 月和 11 月的每个星期三获得一个带有 1 的列。我正在努力寻找一种方法,仅在我刚刚提到的 4 个月中的每个月的第一个星期三获得一个带有 1 的列. 有什么想法还是我必须为它创建一个循环?

testPrices$Rebalance <- ifelse((testPrices$Month=="February" & testPrices$DayWeek == "Wednesday"),1,ifelse((testPrices$Month=="May" & testPrices$DayWeek == "Wednesday"),1,ifelse((testPrices$Month=="August" & testPrices$DayWeek == "Wednesday"),1,ifelse((testPrices$Month=="November" & testPrices$DayWeek == "Wednesday"),1,0))))
Run Code Online (Sandbox Code Playgroud)

if-statement r date

4
推荐指数
2
解决办法
1612
查看次数

Plotly Heatmap和Spatter链接在闪亮的模块中不起作用

按照以下示例:https://plot.ly/r/shinyapp-linked-click/我能够在一个空白的闪亮项目中使这个工作(相关矩阵链接到散点图).但是,当我在一个闪亮的模块中执行相同操作时,基于event_data的单击操作似乎不起作用(散布仍然是空白的,无论发生什么事情,似乎点击没有连接).

我可重复的例子如下,任何想法或解决方案都将非常感激.

library(plotly)

#### Define Modules ####
correlation_matrix_shinyUI <- function(id) {
  ns <- NS(id)

  mainPanel(
    plotlyOutput(ns("corr_matrix"), height = '650px'),
    plotlyOutput(ns("scatterplot"), height = '550px')
  )
}

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

  data_df <- reactive({
    mtcars
  })

  corr_data <- reactive({
    if (is.null(data_df()))
      return()

    corr_data <- cor(data_df())
    diag(corr_data) <- NA
    corr_data <- round(corr_data, 4)
    corr_data
  })

  corr_names <- reactive({
    if (is.null(data_df()))
      return()

    corr_names <- colnames(data_df())
    corr_names
  })

  output$corr_matrix <- renderPlotly({
    if (is.null(corr_names()))
      return()
    if (is.null(corr_data()))
      return()


    g <- …
Run Code Online (Sandbox Code Playgroud)

module r shiny plotly

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

复制列表元素以填充NA列表元素

以下是我现在的代码

set.seed(20)
test_list <- list("1" = matrix(rnorm(100), 10, 10), 
                  "2" = NA, 
                  "3" = NA, 
                  "4" = NA, 
                  "5" = NA, 
                  "6" = matrix(rnorm(100), 10, 10), 
                  "7" = NA, 
                  "8" = NA)
Run Code Online (Sandbox Code Playgroud)

我想找到一种方法来复制不包含带有先前元素内容的NA的列表元素,以便填充每个列表元素.元素1-5将包含元素1中的矩阵,6-8将包含元素6中的矩阵.我可以设置这个问题而不使用NA作为应该复制的元素(如果使用NULL或其他类似的东西有助于解决方案).

提前感谢您的任何建议.

r list

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

将两个相等长度的矢量交替组合

我正在努力与我的感觉,必须有一个很好的矢量化的方式去做,但我只是没有找到它.我目前有两个相等长度的向量,我想组合它们,但我想要向量1中的第一个元素,后面是向量2中的第一个元素,然后是向量1中的第二个元素,后面是向量2中的第二个元素,等等.

Vector1 <- c(301L, 50L, 61L, 84L, 90L)
Vector2 <- c(302L, 51L, 62L, 85L, 91L)
Run Code Online (Sandbox Code Playgroud)

我想要的结果是什么(我知道我可以将它们组合起来并使用排序但我想保持它们的顺序完整(301和302在其余部分之前).

Vector3 <- c(301L, 302L, 50L, 51L, 61L, 62L, 84L, 85L, 90L, 91L)
Run Code Online (Sandbox Code Playgroud)

r

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

以重复模式标记第二个位置

我有一个数字向量,下面有一个重复的模式(通常在重新开始之前2,3,4,5,6,但有时一个或多个不会因为假期而在那里等).我想在每个集合中标记第二次出现(通常是3但不总是如果例如2不存在它将是4我想要标记).任何想法如何标记基本上是一周的第二个工作日?

代码示例:

test_vector <- c(2, 3, 4, 5, 6, 2, 3, 4, 5, 6, 2, 3, 4, 5, 6, 2, 3, 4, 5, 6, 
2, 3, 4, 2, 3, 4, 6, 2, 3, 4, 5, 6, 2, 3, 4, 5, 6, 2, 3, 4, 5, 
6, 2, 3, 4, 5, 6, 2, 3, 4, 5, 6, 2, 3, 4, 5, 6, 2, 3, 4, 5, 6, 
2, 3, 4, 5, 6, 2, 3, 4, 5, 6, 2, 3, 4, 5, …
Run Code Online (Sandbox Code Playgroud)

r

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

检测与另一个元素相距一定距离的数字向量元素

我有一个test_vector数字,我想标记在另一个元素的20之内的任何数字的向量中的位置.知道如何在下面的例子中标记.

14550(位置1)和14554(位置6)?

test_vector <- c(14550, 16072, 15099, 19434, 21040, 14554)
Run Code Online (Sandbox Code Playgroud)

r

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

循环遍历knitr和rmarkdown中的代码

我一直在使用 Knit 和 rmarkdown 整理报告。我喜欢能够以可重现的 R 格式输出我的 R 代码,但是我不断遇到限制,并且想知道以前谁解决过这个问题。我需要循环遍历两个页面,其中包含列表中每个数据集合的各种内容和编织设置。一旦编写了这两页的代码,我想为列表中的每个集合填写 i (1、2、3、4、5 等)。

对于下面的示例,我有 master_list,其中包含 x1_list 和 x2_list。目前,我在每组代码之前设置了一个 num 变量,并相应地更改数字(1、2、3 等)。这是低效的,因为代码都是相同的,只是粘贴了两次。我怎样才能最好地循环代码。

说得更清楚一点。我想在 master_list 中的项目之前循环遍历代码(现在只需两次),而不是每次都重写代码。

我想重复的部分代码(下面是完整的可重现示例)

## Name `r num`: First Table

\vspace*{0.5in}

```{r echo = F, results = 'asis', message = F, warning = F, fig.width = 8, fig.height = 8, size = 'Large'}
library(xtable)
print(xtable(master_list[[num]][[1]]),type='latex',comment = FALSE,floating=FALSE)

```

\newpage

## Manager `r num`: Second Table

```{r echo = F, results = 'asis', message = F, warning = F, fig.align = …
Run Code Online (Sandbox Code Playgroud)

r knitr r-markdown

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