小编hjw*_*hjw的帖子

使用SendMailR将数据框作为电子邮件正文中的表格发送

我正在尝试使用SendMailR发送数据帧.我可以将它作为附件发送,格式相当合理.但是,我想在电子邮件正文中发送数据帧.我尝试了capture.output,print,sprintf,但我甚至无法将格式关闭.

例如,我尝试了以下语法

for (i in 1:nrow(df)){
 MSG = c(MSG,rownames(df)[1],as.character(unlist(df[i,])),'\n')
} 
MSG = sprintf('%-10s',MSG)
sendmail(from,to,subject,msg = list(MSG,attachment1,attachment2 ... ))
Run Code Online (Sandbox Code Playgroud)

换句话说,我认为可能需要将我的数据帧转换为带有/ n和sprintf('s-10%')等的格式并将其存储在MSG中.有人能指出我正确的方向吗?

r sendmailr

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

按日期着色的ggplot2的散点图

我正在尝试用日期颜色做散点图.目前我正在做以下事情,但即使图形看起来像我想要的方式,我仍然无法找到一种方法来获取图例的可读格式.我尝试将它们格式化为20140101,但整年都在一个小范围内,即<20141231,并且我在一年内没有得到不同的颜色.

data(cars)
cars['dt'] = seq(Sys.Date(),Sys.Date()-980,-20)

ggplot(cars,aes(speed,dist,colour = as.integer(dt))) + geom_point(alpha = 0.6) +
scale_colour_gradientn(colours=c('red','green','blue')) 
Run Code Online (Sandbox Code Playgroud)

有人可以推荐一个解决方案吗?具体来说,我希望每个日期都是不同颜色/颜色的阴影.(对于我的实际数据,我有大约5 - 6年的每日数据)

在此输入图像描述

r ggplot2

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

dplyr在遵守group_by的同时使用动态变量名称进行突变

我正在按照

使用变量列dplyr进行dplyr mutate-mutate:使用动态变量名

在mutate中使用动态名称。我要做的是按受最小标准偏差限制的组对列数据进行标准化。每列都有不同的最小标准偏差

例如(为方便起见,我省略了循环和映射语句)

require(dplyr)
require(magrittr)
data(iris)
iris <- tbl_df(iris)

minsd <- c('Sepal.Length' = 0.8)
varname <- 'Sepal.Length'

iris %>% group_by(Species) %>% mutate(!!varname := mean(pluck(iris,varname),na.rm=T)/max(sd(pluck(iris,varname)),minsd[varname]))
Run Code Online (Sandbox Code Playgroud)

我按照参考答案的建议进行了动态分配和变量选择。但是不尊重group_by(),至少对我来说,这是在此处使用dplyr的主要好处

所需的答案由

iris %>% group_by(Species) %>% mutate(!!varname := mean(Sepal.Length,na.rm=T)/max(sd(Sepal.Length),minsd[varname]))
Run Code Online (Sandbox Code Playgroud)

有没有解决的办法?

r dplyr

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

R矢量成字符串的字符串

我是R和mySQL的新手,想在R中运行以下mysql命令

query = "select x, y from table where z in ('a', 'b');"
sqlQuery(connection, query)
Run Code Online (Sandbox Code Playgroud)

假设我有一个很长的可变长度向量.有可能吗?

vector = c('a','b', .....)
query = "select x, y from table where z in **vector**;"
Run Code Online (Sandbox Code Playgroud)

我试过了

query = paste("select x, y from table where z in (", paste(vector, collapse =', '), ");")
Run Code Online (Sandbox Code Playgroud)

但我在括号中丢失了引号而且我得到了

query = "select x, y from table where z in (a, b);"
Run Code Online (Sandbox Code Playgroud)

它不在sqlQuery中运行.有没有办法使用粘贴命令,以便我得到一串字符串?或者有更好的方法来完成我想要完成的任务吗?

sql r paste

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

闪亮反应性解释(使用 ObserveEvent)

我希望使用下面的简化代码作为示例,清楚地了解 Shiny 的反应行为。

当 y 在应用程序中更新时,图表也会更新。
当 x 在应用程序中更新时,图表不会更新。

我已经阅读了 Shiny 的教程,我的理解是,鉴于我已将 test() 和plot() 函数包装在observeEvent 中,这两个参数不应导致图表在更改时更新。

有人可以帮忙解释一下这背后的逻辑吗?

library(shiny)

test <- function(x){x*2}

shinyServer(function(input, output, session) {

  observeEvent(input$run, {
    x = test(input$x)
    output$distPlot <- renderPlot({
      if(input$y){
        x = x+2
      }
      plot(x)
    })
  })

})

shinyUI(fluidPage(

  sidebarLayout(
      sidebarPanel(
      numericInput("x", "x:", 10),
      checkboxInput("y", label = "y", value = FALSE),
      actionButton("run", "run")
    ),

    mainPanel(
      plotOutput("distPlot")
    )
  )
))
Run Code Online (Sandbox Code Playgroud)

r shiny

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

R中的递归替换

我正在尝试清理一些数据,并希望用上一个日期的值替换零.我希望以下代码有效,但事实并非如此

temp = c(1,2,4,5,0,0,6,7)
temp[which(temp==0)]=temp[which(temp==0)-1]
Run Code Online (Sandbox Code Playgroud)

回报

1 2 4 5 5 0 6 7
Run Code Online (Sandbox Code Playgroud)

代替

1 2 4 5 5 5 6 7
Run Code Online (Sandbox Code Playgroud)

这是我希望的.在没有循环的情况下有没有一种很好的方法呢?

indexing r

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

从 R 脚本在 Excel 中打开 CSV 文件

我已经在 R 中生成了一个 csv 文件,并希望我的脚本在 Excel 中打开此文件,以便不了解 R 的人可以修改数据。(理想情况下,当我运行脚本时,excel 打开并加载该文件)。实现这一目标的最佳方法是什么?

r

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

元素明确表示具有NA的数据帧列表

我有一个数据帧列表x,我想找到数据帧中每个元素的平均值.我在Dimitris Rizopoulos网上礼貌地找到了一个优雅的解决方案.

x.mean = Reduce("+", x) / length(x) 
Run Code Online (Sandbox Code Playgroud)

但是,当数据帧包含NA时,这并不真正起作用.有没有一个很好的方法来实现这一目标?

r

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

标签 统计

r ×8

dplyr ×1

ggplot2 ×1

indexing ×1

paste ×1

sendmailr ×1

shiny ×1

sql ×1