懈怠堕落_如何从R懈怠

懈怠堕落

使用R发送Slack消息听起来像是个骗人的把戏,但实际上在很多情况下,这可能派上用场。 我使用Slack将图表发送给同事,以显示最新的Web分析趋势。 当冗长的R脚本完成运行时,您还可以使用Slack通知自己或其他人。

Bob Rudis创建了R包slackr ,它使通过R轻松发送Slack消息变得容易。它位于CRAN上,因此可以使用install.packages("slackr")

到目前为止,使用Slackr最复杂的部分是初始设置。 幸运的是,您只需要执行一次。

您需要授权R使用您的特定Slack。 Bob显示了一个示例配置文件,格式如下:

api_token: YOUR_FULL_API_TOKEN
channel: #general
username: slackr
incoming_webhook_url: https://hooks.slack.com/services/XXXXX/XXXXX/XXXXX

因此,您需要一个API令牌和一个传入的Webhook URL。 Slack的开发人员文档可能很难找到。 事实证明,无论您要发送什么消息,您都想创建一个新的Slack应用程序。

转到api.slack.com/apps ,然后单击绿色的“创建新应用”按钮。

松弛创建应用程序按钮 沙龙·马克斯(IDG)

作为将R设置为与Slack工作空间一起使用的一部分,创建一个Slack应用程序。

接下来,选择传入的Webhooks。

添加webhook 沙龙·马克斯(IDG)

将Webhook添加到新的Slack应用。

然后,您会看到一个激活它们的选项。

激活Webhook 沙龙·马克斯(Sharon Machlis)

在Slack应用上切换到活动的Webhooks。

最后,向下滚动并添加一个新的webhook。 系统将询问您要发布到哪个频道。 不用担心,您可以覆盖它-您不需要为每个通道使用新的钩子。 选择一个默认通道,然后单击“安装”。 您可以在本文顶部的视频中看到所有这些步骤。

启用webhook之后,将生成的webhook URL复制到R Slack配置文件中。 并确保您的配置文件是纯文本文件而不是R脚本。

您还需要一个API令牌。 Slack的“旧版”令牌可用于此目的。 Slack会闪烁许多警告,建议您不要使用它们,但实际上,它们确实使您将R连接到Slack。

要获取旧版令牌,请访问api.slack.com/custom-integrations/legacy-tokens 。 您应该看到该页面上列出了Slack工作空间。 单击创建令牌按钮,然后将令牌字符串复制到您的授权文件中。

松弛设置完成。

下一步:将slackr配置为使用授权文件。 该部分更加简单,需要使用slackr_setup()函数编写一行代码。

slackr_setup()默认在您的主目录中包含一个名为.slackr的文件。 如果要在其他位置使用另一个文件,请将其名称(包括完整的文件路径,如果它不在您的工作目录中)添加到slackr_setup() 。 在下面的代码中,我在当前项目目录中使用的文件名为.morewithr_slack。

slackr_setup(config_file = ".morewithr_slack")

您需要在使用slackr的每个会话的开始时运行slackr_setup()函数和任何必要的参数。

最后,有趣的部分:发送消息和文件。

下面,我用当前的系统日期和时间创建了一个简单的文本字符串,并将其保存到变量my_message 。 要将其发送到Slack,我将slackr_msg()函数与消息文本的第一个参数以及通道的第二个参数一起使用。

my_message <- paste("I'm sending a Slack message at", Sys.time(), "from my R script.")
slackr_msg(my_message, channel = "#slack-from-r")

请注意,频道名称前面有一个井号。 如果您想向某人发送私人消息,请将该频道设置为他们的Slack名称,并在其前面加上@符号。

slackr_msg(paste("Now I'm sending a private message at",
Sys.time()), channel = "@sharon_machlis")

使用slackr_upload()命令发送图像或其他文件也很容易。 就像我在上一集用R做更多事”( “如何从R和Gmail发送电子邮件” )中所做的一样,我将创建一个美国月度失业数据图,并将其保存到失业码文件.png中。 (这不是重要的部分。我只需要中断mtcars和虹膜样本数据。)

下面的代码首先将文本消息发送到Slack,然后上传文件。

pacman::p_load(quantmod, glue, xts, dplyr, ggplot2)
getSymbols("UNRATE", src="FRED")
unemployment <- coredata(UNRATE)
month_starting <- index(UNRATE)
series_length <- length(unemployment)
latest_msg <- glue("The latest US unemployment rate was {unemployment[series_length]},
in the month starting {month_starting[series_length]}.
That's {unemployment[series_length] - unemployment[series_length - 1]}
percentage points difference from the prior month.")
un_df <- data.frame(month_starting, unemployment) %>%
filter(month_starting >= as.Date("2000-01-01")) %>%
rename(unemployment = UNRATE)
mygraph <- ggplot(un_df, aes(month_starting, unemployment)) +
geom_line() +
ggtitle("US Monthly Unemployment") +
xlab("Month Starting") +
ylab ("")
ggsave("unemployment_graph.png")
msg_text <- glue("The latest US unemployment rate was {unemployment[series_length]}, in the month starting {month_starting[series_length]}. That's {unemployment[series_length] - unemployment[series_length - 1]} percentage points difference from the prior month. Here's a graph of the data since January 2000:")
slackr_msg(msg_text, channel = "#slack-from-r")
slackr_upload("unemployment_graph.png",
"US Monthly Unemployment Since Jan 2000",
channels = "#slack-from-r")

在那里,您可以:直接从R脚本获得Slack消息。

有关R的更多技巧,请访问InfoWorld上“用R做更多”视频页面,或查看YouTube播放列表“用R做更多”

翻译自: https://www.infoworld.com/article/3402657/how-to-slack-from-r.html

懈怠堕落

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值