Programação PHP Integrada ao R

O Desenvolvimento e analise de dados não é tarefa fácil.

Integrar o R com outras linguagens é o segredo para analisar grande volume de dados em tempo real, gerando vetores e gráficos.

Um exemplo deste é a Webapi que criei para linguagem PHP:

http://maurinsoft.com.br:8090/ws/graphic.php

Esta web api, gera um arquivo de imagem com um gráfico.

Ao chamar o URL, é chamado em tempo de execução um script em R, que gera a imagem e armazena em um repositório.

É possível criar diversos scripts com o mesmo URL, basta indicar nos parametros o script em R que deverá ser rodado.

No caso do default.R, lê as informações processadas do sensor de chuva, que aponta quando ocorre precipitação de chuva em minha casa.

Valore altos de 900 até 1024, indicam tempo seco.

A imagem é armazenada neste endereço.

Neste exemplo, o R processou o seguinte comando SQL

select

devvalue, dtupdate

from logdevpar

where

devparname=’dev3′

and iddevice=’2′

and (dtupdate>=( DATE_SUB(CONCAT(CURDATE(), ‘ 00:00:00’), INTERVAL 1 DAY) ))

order by dtupdate

limit 100

 

Escolhendo o melhor tipo de grafico em R

A seleção de um bom exemplo de gráfico pode te auxiliar a provar ou apresentar uma idéia ou informação.Ref.: https://www.ibpad.com.br/blog/analise-de-dados/qual-e-o-grafico-mais-adequado/

Segue documento que visa auxiliar esta escolha:

http://maurinsoft.com.br/download/Tipos de Grafico R.pdf

 

Exemplo de Conexão com RStudio em Mysql

Segue um exemplo prático de obtenção de dados do Banco Mysql usando R

#install.packages(“dbConnect”,type=”source”)
library(RMySQL)
library(dbConnect)

con = dbConnect(MySQL(), user=’user’, password=’passwrd’, dbname=’SMSdb’, host=’192.168.1.211′)

dbListTables(con)

#Create table in R from Mysql table
myQuery = “select * from jobs”

str(df)

telefone= “16981434112”

 

#my_d_query=paste(“select * from jobs where telefone = ‘”,telefone,”‘ “)
my_d_query=paste(“select * from jobs “)
out_df= dbGetQuery(con,my_d_query)

dbWriteTable(con,”out_df”,out_df, overwrite=TRUE, append=FALSE)
dbDisconnect(con)

 

Instalando Mysql Conection em RStudio

O Procedimento a seguir foi extraído do seguinte artigo com variances:

http://db.rstudio.com/databases/my-sql/

Em Tools > Install Packages instale os seguintes pacotes:

  • RMySQL
  • devtools
  • dbConnect

Instale o ODBC e a lib do Mysql

Restart RStudio

Segue exemplo de conexão com Mysql

#install.packages(“dbConnect”,type=”source”)
library(RMySQL)
library(dbConnect)

con = dbConnect(MySQL(), user='<user>’, password='<password>’, dbname=’SMSdb’, host=’192.168.1.211′)

dbListTables(con)

#Create table in R from Mysql table
myQuery = “select * from jobs”

str(df)

telefone= “16981434112”

 

my_d_query=paste(“select * from jobs where telefone = ‘”,telefone,”‘ “)
out_df= dbGetQuery(con,my_d_query)

dbWriteTable(con,”out_df”,out_df, overwrite=TRUE, append=FALSE)
dbDisconnect(con)

 

 

Exemplo de código em R

Segue um exemplo bem simples em R,

Criado para avaliar as notas , calculando média.

Fonte:

##Criado por Marcelo Maurin Martins
##Aplicação de Média
##19/02/2018
##Treinamento de Linguagem R

#Criar um algoritmo em R que faça:
#1 – Cadastro de alunos (nome, e-mail, etc…, notas de provas)
#2 – Mostra os dados dos alunos cadastrados informando também os aprovados e reprovados.

 

Nomes=c(“Marcelo”,”Fernanda”,”Camille”,”Roberta”,”Marcella”)
Nomes=as.character(Nomes)
Email=c(“marcelomaurinmartins@gmail.com”,”teste1@”,”teste2@”,”teste3@”,”teste4@”)
Email=as.character(Email)
Nota1=c(9,1.4,9,3,9)
Nota1=as.numeric(Nota1)
Nota2=c(9,2.4,9,2,8)
Nota2=as.numeric(Nota2)
Nota3=c(9,1.4,9,3,7)
Nota3=as.numeric(Nota3)
Nota4=c(9,3.4,9,4,6)
Nota4=as.numeric(Nota4)
Media=c(0,0,0,0,0)
Media=as.numeric(Media)

#Monta o data frame
Notas=data.frame(Nomes,Email,Nota1,Nota2,Nota3,Nota4,Media)

#Calcula a media
for(i in 1:length(Nomes))
{
print(Notas[i,1])
Notas[i,7]=(Notas[i,3]+Notas[i,4]+Notas[i,5]+Notas[i,6])/4
if(Notas[i,7]>=7)
{
print(“Aprovado”)
}
else
{
print(“Reprovado”)
}
}

Resultado do Data.frame

Notas
Nomes Email
1 Marcelo marcelomaurinmartins@gmail.com
2 Fernanda teste1@
3 Camille teste2@
4 Roberta teste3@
5 Marcella teste4@
Nota1 Nota2 Nota3 Nota4 Media
1 9.0 9.0 9.0 9.0 9.00
2 1.4 2.4 1.4 3.4 2.15
3 9.0 9.0 9.0 9.0 9.00
4 3.0 2.0 3.0 4.0 3.00
5 9.0 8.0 7.0 6.0 7.50

Output de dados

[1] Marcelo
[1] “Aprovado”
[1] Fernanda
[1] “Reprovado”
[1] Camille
[1] “Aprovado”
[1] Roberta
[1] “Reprovado”
[1] Marcella
[1] “Aprovado”