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

Animacje w R

Warto zwrócić uwagę na możliwość tworzenia w R animowanych GIF'ów. Jest to szczególnie przydatne w prezentacjach.

library(animation)
saveGIF({
    for (i in 1:10) plot(runif(10), ylim = 0:1)
}) 

Created by Pretty R at inside-R.org

Więcej na ten temat można przeczytać na Programming R

admin | środa, 25 kwiecień 2012 - 09:48 am | | Blog-R

Słów kilka o kompilowaniu w R

Przyspieszenie obliczeń w R może nastąpić, kiedy zastosujemy pakiet compiler.

Kilka słów na ten temat można znaleźć tutaj.

Polecam.

To powinno przyspieszyć każdy kod :)

require(compiler)
enableJIT(3)

admin | środa, 11 kwiecień 2012 - 2:28 pm | | Blog-R

Jak R szuka i znajduje

Dla tych, którzy chcą lepiej poznać środowisko R w którym pracują polecam artykuł:

"How R Searches And Finds Stuff"

oraz

"How R Finds Objects (Or What That :: Operator Is For)"

admin | czwartek, 05 kwiecień 2012 - 08:48 am | | Blog-R

Wydano R 2.15.0

Opublikowano najnowszą wersję R'a 2.15.0.

Więcej na ten temat na R-bloggers.

Kod źródłowy można pobrać z:

http://cran.r-project.org/src/base/R-2/R-2.15.0.tar.gz

admin | piątek, 30 marzec 2012 - 5:02 pm | | Blog-R