R maile wysyła...

Tym razem znalazłem post o tym jak wysyłać maile za pomocą R'a z załącznikami:

load package
library("sendmailR")
 
 
#use string formatting and your system info to format FROM address
from <- sprintf("<Projekt@%s>", Sys.info()[4])

#Sys.info()[4] - zwraca nazwę komputera
   to <- "<adres@docelowy.pl>" subject <- "Temat maila"   #Utwórz obiekt list zawierający treść maila (pierwszy element)
#Drugim elementem listy jest obiekt R'a, który chcemy dołączyć do maila.
#Do tego celu wykorzystujemy funkcję mime_part()
body <- list("Mail wysłany za pomocą R'a. Dołączona ramka danych.",
mime_part(data.frame(x=rnorm(1000),y=rnorm(1000)),name="output"))   sendmail(from, to, subject, body, control=list(smtpServer="ASPMX.L.GOOGLE.COM"))

Created by Pretty R at inside-R.org

Źródło:

http://www.ancienteco.com/2012/05/send-emails-with-attachments-from-r.html

admin | czwartek, 31 maj 2012 - 10:50 am | | Blog-R

Trendy w PubMed...

Jeżeli w naszej prezentacji pragniemy zobrazować trendy w badaniach naukowych z naszej dziedziny to powinniśmy zajrzeć tutaj.

admin | środa, 16 maj 2012 - 11:12 am | | Blog-R

Operacja logiczna na liście macierzy

Jeżeli pewien zbiór danych o characketerze logicznym mamy zapisany jako listę równowymiarowych macierzy, to możemy uzskać podsumowanie w postaci logicznej sumy tych macierzy to możemy wykorzystać funkcję:

ORlist<-function(x){
	res<-matrix(FALSE,nrow=nrow(x[[1]]),ncol=ncol(x[[2]]))
	for(i in names(x)){
		res<-res|x[[i]]
	}
	return(res)
}

Created by Pretty R at inside-R.org

admin | środa, 16 maj 2012 - 11:05 am | | Blog-R

R maile wysyła

Sposób I:

install.packages("mail")
library(mail)
 
sendmail(“odbiorca@poczta.pl“, subject=”Temat“,message=“Treść maila”)

Created by Pretty R at inside-R.org

Ograniczeniem jest możliwość wysłania tylko 20 maili dziennie z jednego numeru IP.

Sposób II:

install.packages("sendmailR")
library(sendmailR)
 
from <- sprintf("<sendmailR@%s>", Sys.info()[4])
to <- "<odbiorca@poczta.pl>"
subject <- "Hello from R"
body <- list("It works!", mime_part(iris))
 
sendmail(from, to, subject, body,control=list(smtpServer="ASPMX.L.GOOGLE.COM"))

Created by Pretty R at inside-R.org

Więcej informacji można znaleźć tutaj.

admin | wtorek, 15 maj 2012 - 10:46 pm | | Blog-R

Nowa wersja R Studio 0.96

W nowej wersji R Studio 0.96 ulepszono przedewszystkim obsługę tworzenia PDF'ów.
Najlepiej zobaczyć to TUTAJ.

Nową wersję można pobrać tutaj.

Więcej informcji mozna także znaleźć na R-Bloggers.

admin | poniedziałek, 14 maj 2012 - 11:42 pm | | Blog-R

hammingDist

Odległość Hamming'a:

hammingDist<-function(x,y){
	if(length(x)!=1 | length(y)!=1)
		stop("x,y - not a single string!")
	if(nchar(x)!=nchar(y))
		stop("x,y - not equal length!")
	tmpX<-strsplit(as.character(x),'')[[1]]
	tmpY<-strsplit(as.character(y),'')[[1]]
	res<-NULL
	for(i in 1:length(tmpX)){
		res[i]<-tmpX[i]!=tmpY[i]
	}
	return(sum(res))
}

Created by Pretty R at inside-R.org

hammingDist<-function(x,y){
	if(length(x)!=1 | length(y)!=1)
		stop("x,y - not a single string!")
	if(nchar(x)!=nchar(y))
		stop("x,y - not equal length!")
	tmpX<-strsplit(as.character(x),'')[[1]]
	tmpY<-strsplit(as.character(y),'')[[1]]
	res<-NULL
	for(i in 1:length(tmpX)){
		res[i]<-tmpX[i]!=tmpY[i]
	}
	result<-list()
	result[['hammingDist']]<-sum(res)
	tmpX[res]<-"."
	result[['commonPattern']]<-paste(tmpX,sep="",collapse="")
	return(result)
}

Created by Pretty R at inside-R.org

hammingDist<-function(x,y){
	if(length(x)!=1 | length(y)!=1)
		stop("x,y - not a single string!")
	if(nchar(x)!=nchar(y))
		stop(paste("x,y - not equal length!\n","x= ", nchar(x),"\ny= ",nchar(y),sep=""))
	tmpX<-strsplit(as.character(x),'')[[1]]
	tmpY<-strsplit(as.character(y),'')[[1]]
	res<-NULL
	for(i in 1:length(tmpX)){
		res[i]<-tmpX[i]!=tmpY[i]
	}
	result<-list()
	result[['hammingDist']]<-sum(res)
	tmpX[res]<-"."
	result[['commonPattern']]<-paste(tmpX,sep="",collapse="")
	return(result)
}

Created by Pretty R at inside-R.org

admin | wtorek, 08 maj 2012 - 11:58 am | | Blog-R

Ostrzeżenie w R

Nie używaj funkcji warning(), a wszelkie ostrzeżenia pochodzące od trzecich pakietów traktuj jako błędy!!!

Używaj w kodzie funkcji stop().

Zapewni to bezproblemowe działanie kodu, który zadziała lub nie, ale nie będzie maskował błędów.

Więcej na ten temat na: obeautifulcode.com

admin | środa, 02 maj 2012 - 1:32 pm | | Blog-R