小编ali*_*ire的帖子

rgb透明色在plotly和R.

我试图获得一个填充区域为半透明紫色的图形图形.我可以找到rgb指定正常并让它在一个简单的情节中工作.但似乎情节并没有以通常的方式阅读rgb?

plot(rnorm(10),col="#A020F066",pch=15,cex=13)
# plots squares that are transparent purple (expected)
Run Code Online (Sandbox Code Playgroud)

情节与紫色方块

p=plot_ly(x=c(1,2,3,4),y=c(1,2,5,10),type="scatter",line=list(color="red"))
p=add_trace(p,x=c(1,2,3,4),y=c(11,12,15,20),type="scatter",
        fillcolor="#A020F066",fill="tonexty",
        line=list(width=10),marker=list(size=10))
p
# plots area that is transparent mint green (What? I expected purple)
Run Code Online (Sandbox Code Playgroud)

情节与绿色填充

rgb r plotly

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

ggplot绘图列表到一个pdf具有不同的页面布局

我想制作一个包含许多ggplots页面的pdf.使用gridExtra,我还可以构建一个带有m x n布局的图表页面(图表m行,图表n列).

该功能ggsave让我写地块的页面,即使是带有内置那些gridExtra具有m x n布局.

只要每个页面具有相同的布局,使用arrangeGrob它甚至可以将ggsave许多页面转换为单个pdf m x n.

我想知道如何ggsave列出具有不同页面布局的图表?例如,我有一个列表,l长度为3表示3页.

l[[1]]是一个2 x 2布局的页面,有4个图

l[[2]]2 x 1有2个地块

l[[3]] 只是 1 x 1

我怎么能破解ggsave以便我可以将列表l写入1个pdf文件,其中3个页面具有不同的布局?这些图应以横向显示,因此通常命令将具有该表单

ggsave("multipage.pdf", do.call(arrangeGrob, myplots[[i]]), width=11, height=8.5)
Run Code Online (Sandbox Code Playgroud)

r ggplot2 gridextra

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

提取,格式化和分离已存储在数据框列中的JSON

我如何解析和处理已存在于数据框内的JSON?

样本数据:

df <- data.frame(
    id = c("x1", "x2"), 
    y = c('[{"Property":"94","Value":"Error"},{"Property":"C1","Value":"Found Match"},{"Property":"C2","Value":"Address Mismatch"}]', '[{"Property":"81","Value":"XYZ"},{"Property":"D1","Value":"Blah Blah"},{"Property":"Z2","Value":"Email Mismatch"}]')
)
Run Code Online (Sandbox Code Playgroud)

我想提取,格式化并将列中的原始JSON y分成有序列,理想情况下是library(jsonlite).

提前致谢!

json r jsonlite

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

如何在 R Shiny 中添加更大的文本输入框?

我正在创建一个 Shiny 应用程序,其中一部分我需要用户输入文本摘要,但是应用程序中出现的文本输入框的默认大小非常小。用户难以输入 3-4 行的摘要。你能帮我写一个可以使文本输入框变大的脚本吗?非常感谢您的帮助!

来自我的应用程序的快照

============ 我只是用 HTML 标签尝试了以下内容:

library(shiny)

shinyUI(fluidPage(
  sidebarLayout(
    sidebarPanel(
      tags$textarea(id="my_textarea", rows=5, "Leave a comment...")
    ),
    mainPanel(
      uiOutput("my_output")
    )
  )
))
Run Code Online (Sandbox Code Playgroud)

但出现了一些错误 - 如下所示!

r shiny shiny-server

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

如何让这个R代码更优雅?

我正在解决R练习,但我认为我可以使这个代码更优雅或更简单.我正在使用ggplot2中的钻石数据集.我必须从数字变量中删除异常值,并且异常值对我来说是一行,其中任何数值变量高于或低于中位数+/- 3倍MAD(中位数绝对偏差).我的实际代码是非常手动的:

library(dplyr)

filter(numeric.vars, 
    carat > median(carat) - 3 * mad(carat),
    carat < median(carat) + 3 * mad(carat),
    depth > median(depth) - 3 * mad(depth),
    depth < median(depth) + 3 * mad(depth),
    table > median(table) - 3 * mad(table),
    table < median(table) + 3 * mad(table),
    price > median(price) -3 * mad(price),
    price < median(price) +3 * mad(price),
    x > median(x) - 3 * mad(x),
    x < median(x) + 3 * mad(x),
    y > median(y) - 3 * mad(y),
    y …
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

如何使用group_by变量作为dplyr的排除值?

假设我有以下数据框:

(dat  = data_frame(v1 = c(rep("a", 3), rep("b", 3), rep("c", 4)), v2 = 1:10))
# A tibble: 10 × 2
#       v1    v2
#    <chr> <int>
# 1      a     1
# 2      a     2
# 3      a     3
# 4      b     4
# 5      b     5
# 6      b     6
# 7      c     7
# 8      c     8
# 9      c     9
# 10     c    10
Run Code Online (Sandbox Code Playgroud)

我希望能够做的是计算每个组(即"A","B"和"C")等于之和的总和v2,其中v1不相等的分组值.所以看起来应该是这样的:

# A tibble: 3 × 2
# …
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

Boxplot与ggplot2

我正在研究一个带有预测和观测的箱线图,这是一个非常长的数据集.我在这里提供样本格式.

> forecasts <- data.frame(f_type = c(rep("A", 9), rep("B", 9)), 
                          Date = c(rep(as.Date("2007-01-31"),3), rep(as.Date("2007-02-28"), 3), rep(as.Date("2007-03-31"), 3), rep(as.Date("2007-01-31"), 3), rep(as.Date("2007-02-28"), 3), rep(as.Date("2007-03-31"), 3)), 
                          value = c(10, 50, 60, 05, 90, 20, 30, 46, 39, 69, 82, 48, 65, 99, 75, 15 ,49, 27))
> 
> observation <- data.frame(Dt = c(as.Date("2007-01-31"), as.Date("2007-02-28"), as.Date("2007-03-31")), 
                            obs = c(30,49,57))
Run Code Online (Sandbox Code Playgroud)

到目前为止,我有:

ggplot() + 
    geom_boxplot(data = forecasts,
                 aes(x = as.factor(Date), y = value, 
                     group = interaction(Date, f_type), fill = f_type)) +  
    geom_line(data = observations,
              aes(x = …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 boxplot

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

计算所有可能的lats和longs组合之间的距离

我无法让下面的代码工作。我正在尝试计算数据集中所有可能的经纬度组合之间的距离。

我将使用的示例输入数据:

p <- data.frame(lat=runif(6,-90,90), lon=runif(6,-180,180) );
Run Code Online (Sandbox Code Playgroud)

我无法让下面的代码工作。距离函数不起作用,所以我尝试了distm,但这也给了我一个错误信息。错误消息列在代码下方。

d <- setNames(do.call(rbind.data.frame, 
                      combn(1:nrow(p), 2, simplify = FALSE)), 
              c('p1','p2'));
d$dist <- sapply(1:nrow(d), function(r){
    distance(p$lat[d$p1[r]], p$lat[d$p2[r]], p$lon[d$p1[r]], p$lon[d$p2[r]])
})

d$dist <- sapply(1:nrow(d), function(r){
    distm(p$lat[d$p1[r]], p$lat[d$p2[r]], p$lon[d$p1[r]], p$lon[d$p2[r]])
})

#> Error in distm(p$lat[d$p1[r]], p$lat[d$p2[r]], p$lon[d$p1[r]], p$lon[d$p2[r]]) : 
#>  unused argument (p$lon[d$p2[r]])
Run Code Online (Sandbox Code Playgroud)

r latitude-longitude

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

从 Shiny 保存 ggplot 会给出空白 png 文件

我正在尝试保存应用程序ggplot2中创建的对象shiny。基本上,此代码允许.xlsx上传文件并在从某些选项中进行选择后创建绘图。然后我添加了一个下载按钮,以便用户可以下载他们创建的绘图。我正在使用downloadHandler()grDevices::png()。按下按钮确实会.png下载文件,但当我打开它时,它只是一个空白的白色方块。我是如此接近!任何帮助将非常感激。谢谢。

#initialize
library(shiny)
library(ggplot2)
library(purrr)
library(dplyr)
library(plotly)


#example data
data(iris)

#make some factors
#easier to let ggplot2 control plotting (color, fill) based on type
data(mtcars)
uvals<-sapply(mtcars,function(x){length(unique(x))})
mtcars<-map_if(mtcars,uvals<4,as.factor) %>%
  as.data.frame()


#plotting theme for ggplot2
.theme<- theme(
  axis.line = element_line(colour = 'gray', size = .75),
  panel.background = element_blank(),
  plot.background = element_blank()
)


# UI for app
ui<-(pageWithSidebar(
  # title
  headerPanel("Select Options"),

  #input
  sidebarPanel
  (
    # Input: Select a file ---- …
Run Code Online (Sandbox Code Playgroud)

png r ggplot2 shiny

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

dplyr NSE:将数据框中的多列居中

我试图使用 dplyr 在数据框中“居中”多个列,但我不断收到“二元运算符的非数字参数”评估错误。我认为这是因为当我的函数需要一个裸变量名时我试图传递一个字符串。但是,使用 syms() 函数没有帮助。

center <- function(var) {
  var <- enquo(var)
  var_ctrd <- paste0(quo_name(var), "_ctrd")
  dataset <- dataset %>% 
    group_by(Gender) %>% 
    mutate(!! var_ctrd := !! var - mean(!! var, na.rm = TRUE))
}

# Pull out character vector of modifier names
mod_names <- dataset %>% 
  select(NeckLengthCm:FlexExtDiff_Peak_abs) %>% 
  colnames()

# Iterate over modifiers
walk(syms(mod_names), center)
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题或者是否有更好的解决方案?

r dplyr non-standard-evaluation rlang

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