Pojawiła się nowa wersja Rcmdr

Pojawiła się nowa wersja Rcmdr numer 1.8-1. Poinformował o tym John Fox to the R-pkgs mailing list.

Źródło: R-bloggers

admin | czwartek, 29 grudzień 2011 - 7:19 pm | | Blog-R

Ile miejsc po przecinku ?

Zaszła potrzeba, aby dowiedzieć się ile miejsc po przecinku ma pewna zmienna...

howManyDecimals<-function(x){
	if(!is.numeric(x))
		stop("x must be numeric!")
	return(nchar(unlist(strsplit(as.character(x),'.',fixed=TRUE))[2]))
}

Created by Pretty R at inside-R.org

Jedyną wadą tej funkcji jest ograniczenie wynikające z obcięcia części dziesiętnej liczby przez wykorzystaną funkcję as.character().

admin | środa, 28 grudzień 2011 - 3:08 pm | | Blog-R

Funkcja zaokrąglająca "krokowo"

Przedstawiam prostą funkcję, która zaokrągla liczbę do wartości najbliższego kroku:

roundStep<-function(x, step, start=0){
	if(missing(x)|missing(step))
		stop("Missing argument")
	return(round((x-start)/step)*step+start)
}

Created by Pretty R at inside-R.org

admin | środa, 28 grudzień 2011 - 12:08 pm | | Blog-R

Programistyczne problemy próbkowania

Funkcja sample() może sprawiać pewne problemy jeżeli zostanie niepoprawnie zastosowana w kodzie. Przykład takiego problemu został opisany na stronie R snippets.

I chociaż juz pierwszy komentarz pod postem stwierdza, że jest to problem udokumentowany w pomocy funkcji i zalecana jest nawet funkcja rozwiązująca przedstawione problemy (resample()), to i tak uważam, że warto przeanalizować przynajmniej kod zaprezentowany poniżej (R snippets).

 Zobaczcie różnicę:

for (i in 1:4) {
      x <- i:4
      print(sample(x))
}
#[1] 4 1 2 3
#[1] 3 2 4
#[1] 4 3
#[1] 3 2 1 4

Created by Pretty R at inside-R.org

for (i in 1:4) {
      x <- i:4
      print(x[sample(length(x))])
}
#[1] 4 1 2 3
#[1] 3 2 4
#[1] 3 4
#[1] 4

Created by Pretty R at inside-R.org

Źródło: R-bloggers

admin | poniedziałek, 26 grudzień 2011 - 11:41 pm | | Blog-R

Życzenia

Z Okazji Świąt Bożego Narodzenia składam wszystkim najserdeczniejsze życzenia.

P.S. Z tej okazji przygotowałem dla Was choinkę.

source("http://fork.edu.pl/r/choinka.R")

admin | sobota, 24 grudzień 2011 - 3:14 pm | | Blog-R

Wykresy w R bez znajomości R...

Z pakietem GrapheR opisanym w artykule pt: GrapheR: a Multiplatform GUI for Drawing Customizable Graphs in R przez Maxime Hervé, można tworzyć R'owe wykresy bez jakiej kolwiek znajomości R'a. Jedyne co trzeba zrobić to załadować pakiet i uruchomić poleceniem: <b>run.GrapheR()</b>. Resztę można spokojnie wyklikać.

admin | czwartek, 22 grudzień 2011 - 12:01 am | | Blog-R

Interesująca alternatywa dla Sweave...

Przeglądając R-bloggers trafiłem na ciekawą alternatywę dla Sweave, czyli knitr

Źródło: R-bloggers

admin | niedziela, 18 grudzień 2011 - 12:49 am | | Blog-R

Bezpieczeństwo wewnętrzne kodu...

Około północy zastanawiałem się w jaki sposób zabezpieczyć obiekty w moim kodzie przed niepowołaną zmianą, a dokładnie przed samym sobą... Tworzę dość skomplikowaną strukturę do analizy danych mikromacierzowych i wykorzystuje pewien mechanizm filtrów, który pozwala mi skierować wybrane dane do analizy. Jednakże, jak to bywa w życiu człowieka, mam kiepską pamięć i pracuję na kilku wersjach tych samych danych... Nie mam możliwości upilnowania w takiej sytuacji pożądku w danych, dlatego żeby uchronić się przed analizą różnych danych zmienionym przez pomyłkę filtrem mam zamiar wykorzystać sumy kontrolne, które pozwolą zapanować przynajmniej częściowo nad chaosem.

Znalazłem na szybko dwa pakiety do tworzenia sum kontrolnych, ale tylko jeden z nich działa sensownie: digest.

P.S. Jeśli coś wyżej zostało napisane nieskładnie i nielogicznie, to bardzo przepraszam, ale jest już późno. Dobranoc.

P.S.2. Dla zainteresowanych kod R'a tego drugiego.

P.S.3. Znalazłem też implementacje MD5 w rozmaitych językach.

admin | niedziela, 18 grudzień 2011 - 12:26 am | | Blog-R