数据:
我有一个闪亮的仪表板应用程序,我的数据集大小约为600 MB.它每月膨胀100 MB.我的数据驻留在MySQL本地.
的MenuItems:
我的仪表板上有6到7个侧边栏menuItem,每个都有10-12个不同的输出 - 图表和表格.这些选项卡中的每一个都有3到6个输入,例如selectizeInput,滑块,日期范围等,以过滤数据.
数据子集:
由于我无法将所有数据加载到内存中,因此对于每个菜单项,我都会根据日期范围创建数据子集,方法是将日期范围保持为系统日期后的2-3天.
例如:
df1 <- reactive({df[df$date >- dateinput[1] & df$date <- dateinput[2], ]})
以上获取我的第一个菜单项的数据,并根据selectInput或其他输入,我进一步过滤数据.例如,如果我有一个selectInput Gender (male and female)
然后我进一步子集df1
到:
df2 <- reactive({
if(is.null(input$Gender)){
df1
} else if(input$Gender == "Male")
{df1[df1$Gender == "Male",]}
)}
Run Code Online (Sandbox Code Playgroud)
如果我有超过1个输入,我进一步将这个df1子集化并将值传递给df2.df2成为该MenuItem中所有图表和表的反应数据集.
menuItem的数量越多,我就会创建更多的子集以适应过滤器和分析.
我面临两个问题:
在第一组数据加载后,图表和表在响应性更改时呈现得更快.
为了解决这个问题,我尝试将所有常见和重复的参数和库移动到global.R.
我有两个问题:
1.在R中挖掘数据时需要记住的任何基本卫生因素,特别是通过闪亮(R中的采矿速度非常快).
2.我已经阅读了关于并行处理的内容,但几乎所有的例子都谈到分配一个较重的计算.我们可以通过并行处理,分组数据或分发图表/表格准备来分发.
请注意,我是研究员而不是程序员,但他们已经学会在云上或最近在本地使用闪亮和主机应用程序.
对于像我这样的R的许多新手用户,这方面的指导将非常有用.
通常,闪亮的应用程序通过R-Studio内置的浏览器打开.是否可以直接在网络浏览器中打开应用程序,例如谷歌浏览器,而无需通过R-Studio.
我有一个数据框,看起来像这样:
structure(list(ab = c(0, 1, 1, 1, 1, 0, 0, 0, 1, 1), bc = c(1,
1, 1, 1, 0, 0, 0, 1, 0, 1), de = c(0, 0, 1, 1, 1, 0, 1, 1, 0,
1), cl = c(1, 2, 3, 1, 2, 3, 1, 2, 3, 2)), .Names = c("ab", "bc",
"de", "cl"), row.names = c(NA, -10L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)
列cl表示簇关联,变量ab,bc&de携带二进制答案,其中1表示是和0 - 否.
我正在尝试创建一个表交叉标签集群以及数据框中的所有其他列,即ab,bc和de,其中集群成为列变量.所需的输出是这样的
1 2 3
ab 1 3 2
bc 2 3 1
de 2 3 …
Run Code Online (Sandbox Code Playgroud) 我试图从我的Gmail帐户下载gmails.最重要的是,我有兴趣下载邮件的实际内容以及其他参数的收据时间,主题,地址和地址.我尝试过使用gmailr和edeR软件包.虽然gmailr有助于发送邮件(我已经成功尝试过,但edeR只帮助下载顶线数据而不是邮件正文.我正在寻找这些数据来测试分类模型.有没有办法在R ...我不熟悉任何其他语言.
我想从我的Shiny应用程序发送邮件.我已经为邮件的地址,主题和正文创建了文本输入框.当我在textInput框中输入的是单个电子邮件ID时,应用程序会发送邮件.当我添加第二个电子邮件ID时,它会失败.但是,当我尝试从RStudio而不是闪亮的应用程序运行它时,相同的代码,我能够发送电子邮件.如何让我的textInput正确解析电子邮件ID,以便mailR向他们发送邮件?
我目前的代码:
library(shiny)
library(mailR)
ui =fluidPage(
fluidRow(
div(id = "login",
wellPanel(title = "Mail your report",
textInput("to", label = "To:", placeholder = "To:"),
textInput("sub","Subject:"),
textInput("msg","Message:"),
actionButton("mailButton",label = "Send mail")
)
))
)
server = function(input, output, session) {
observeEvent(input$mailButton,{
isolate({
send.mail(from = "myemail@gmail.com",
to = input$to,
subject = input$sub,
body = input$msg,
smtp = list(host.name = "smtp.gmail.com", port = 465, user.name = "myemail@gmail.com", passwd = "mypasword", ssl = TRUE),
authenticate = TRUE,
html = TRUE,
send = TRUE)
})
})
} …
Run Code Online (Sandbox Code Playgroud) 我已从我的 Gmail 帐户下载了邮件存档。我正在使用以下来自博客的 python(2.7) 代码将存档的内容转换为 csv。
import mailbox
import csv
writer = csv.writer(open(("clean_mail.csv", "wb"))
for message in mailbox.mbox('archive.mbox'):
writer.writerow([message['subject'], message['from'], message['date']])
Run Code Online (Sandbox Code Playgroud)
我也想包含邮件正文(实际消息)...但不知道如何。我之前没有使用过python,有人可以帮忙吗?我已经使用了其他给出的选项,但无法通过。
为了完成相同的任务,我也使用了以下代码:但是第 60 行出现缩进错误:return json_msg。我尝试了不同的缩进选项,但没有任何改进。
import sys
import mailbox
import email
import quopri
import json
import time
from BeautifulSoup import BeautifulSoup
from dateutil.parser import parse
MBOX = 'Users/mymachine/client1/Takeout/Mail/archive.mbox'
OUT_FILE = 'Users/mymachine/client1/Takeout/Mail/archive.mbox.json'
def cleanContent(msg):
msg = quopri.decodestring(msg)
try:
soup = BeautifulSoup(msg)
except:
return ''
return ''.join(soup.findAll(text=True))
# There's a lot of data to process, and the Pythonic way to do …
Run Code Online (Sandbox Code Playgroud) 我正在将以下数据绘制到ggplot条形图中.
structure(list(MEDIATYPE = c("BACKLIT TOWER", "BILLBOARDS", "BRIDGE PANEL",
"BUILDING FACADES", "BUS SHELTER", "CANTILIVERS", "CYCLE SHELTER",
"FOB", "FREE STANDING PANEL", "GANTRIES"), RENTAL = c(197, 278363,
1423, 26, 35960, 6194, 70, 4845, 27, 9420)), .Names = c("MEDIATYPE",
"RENTAL"), row.names = c(NA, 10L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)
我使用以下代码来呈现图表.它工作正常.但问题是yaxis值不断变化,图表顶部的注释有时会消失,或者在其他情况下会出现在图表的中间.
library(ggplot2)
library(stringr) # str_wrap
ggplot(b, aes(x=reorder(MEDIATYPE,-RENTAL), y=RENTAL, fill=MEDIATYPE)) + geom_bar(stat = "identity", width = 0.8) +
theme(legend.position = "none") + xlab("MEDIATYPE") + ylab("SPENDS") +
scale_x_discrete(labels = function(x) str_wrap(x, width = 1)) +
theme(axis.text.x = element_text(angle = …
Run Code Online (Sandbox Code Playgroud) 我正在学习使用 Tensorflow 进行对象检测。为了加快训练过程,我采用了一个具有 4 个 GPU 的 AWS g3.16xlarge 实例。我正在使用以下代码运行训练过程:
export CUDA_VISIBLE_DEVICES=0,1,2,3
python object_detection/train.py --logtostderr --pipeline_config_path=/home/ubuntu/builder/rcnn.config --train_dir=/home/ubuntu/builder/experiments/training/
Run Code Online (Sandbox Code Playgroud)
在 rcnn.config 里面 - 我已经设置了batch-size = 1
. 在运行时,我得到以下输出:
控制台输出
2018-11-09 07:25:50.104310: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Device peer to peer matrix
2018-11-09 07:25:50.104385: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1051] DMA: 0 1 2 3
2018-11-09 07:25:50.104395: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1061] 0: Y N N N
2018-11-09 07:25:50.104402: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1061] 1: N Y N N
2018-11-09 07:25:50.104409: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1061] 2: N N Y N
2018-11-09 07:25:50.104416: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1061] 3: N N …
Run Code Online (Sandbox Code Playgroud) 我有一个数据框
structure(list(Brand = c("AB", "AC", "AD", "BA", "CB", "CK"), `&TV` = c("0_640",
"0", "1_340", "0", "0", "0"), `&TV HD` = c("1_500", "0", "0_140",
"0", "0", "0")), row.names = c(NA, 6L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)
看起来像这样:
Brand &TV &TV HD
1 AB 0_640 1_500
2 AC 0 0
3 AD 1_340 0_140
4 BA 0 0
5 CB 0 0
6 CK 0 0
Run Code Online (Sandbox Code Playgroud)
我想返回其中包含模式的单元格的行和列值1_
。对于上面的例子,我想返回
row col
3 2
1 3
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 grep 但不是很成功。
grep(New_Brands_Theme_Combine[,c(1:length(New_Brands_Theme_Combine))], pattern = "1_")
Run Code Online (Sandbox Code Playgroud)
上面给出了找到模式的数据框的列号。如何获取列号和行号。
我有两个数据框
df1
Srlno id image
1 3 image1.jpg
2 3 image2.jpg
3 3 image2.jpg
Run Code Online (Sandbox Code Playgroud)
df2
Srlno id image
1 1 image1.jpg
2 2 image2.jpg
3 3 image3.jpg
Run Code Online (Sandbox Code Playgroud)
我想匹配基于“图像”列的两个数据帧,并将ID从df2返回到df1作为新列。df2中的图像名称是唯一的,而df1中的图像名称有很多重复项。我想保留重复的图像名称,但为df2中的每个图像填写正确的ID。
预期的输出是:
Srlno id image newids
1 3 image1.jpg 1
2 3 image2.jpg 2
3 3 image2.jpg 2
Run Code Online (Sandbox Code Playgroud)
我尝试过
df1['newids'] = df1['image'].map(df2.set_index('image')['id'])
Run Code Online (Sandbox Code Playgroud)
这将返回错误InvalidInvexError(“仅对唯一值索引对象有效的索引”)我知道df1中的重复项正在创建此错误...但不知道如何解决。