Arxiu d'etiquetes: R

Important dades d’Excel a R-Commander amb el portapapers

L’R-Commander pot importar fulls de càlcul sencers com a data frames, però quan tenim un full amb dades poc estructurades (o barreja d’una part estructurada i una de no estructurada) o quan volem importar només una part del full, aleshores seleccionar, copiar i importar pot ser molt més pràctic. A més, la mateixa técnica serveix per importar taules des de pàgines web o qualsevol altra font.

Fa temps ho vaig explicar en un vídeo:

Anuncis

Un parell de fractals senzills amb R

koch

Del temps en que jo estudiava, cap als anys noranta, i els fractals estaven de moda, m’ha quedat el vici de provar de dibuixar-ne cada cop que descobreixo les possibilitats gràfiques d’un nou llenguatge. Vaig començar amb QBasic i amb Autolist (veure una falguera fractal dibuixada punt a punt amb un plotter de plometes des de l’Autocad és una experiència llarga però inoblidable), i he arribat a dibuixar-ne fins i tot amb Scratch. Em quedava pendent l’R, i m’ha sorprès la simplicitat i compacitat dels programes resultants. Per exemple, el floc de neu de Koch:

func<-function (x) {c(x,x+60,x-60,x)}
v0<-func(func(func(func(func(func(0))))))
df=data.frame(dx=cos(v0*pi/180),dy=sin(v0*pi/180))
punts<-cumsum(df)
plot(x=punts$dx,y=punts$dy,type="l",asp=1)

D’acord que fer “func(func(func(func(func(func” és una mica un nyap, però diria que és més clar i potser fins i tot més curt que fer un for, i de fet el que volia fer és un programa compacte. Per la resta, la gràcia és l’enfoc de R cap a objectes sencers que estalvia uns quants for i simplifica molt la sintaxi.

Un altre exemple, una fulla construïda a partir de transformacions afins:

matriu1<-matrix(c(0.7,0.2,-0.1,0.92),2,2)
v1<-c(0.005,0.02)
matriu2<-matrix(c(0,-0.4,0.7,0.05),2,2)
v2<-c(0.06,0.003)
pfinal<-matrix(c(0,0),ncol=1,nrow=2)
f1<-function(v) {matriu1%*%v+v1}
f2<-function(v) {matriu2%*%v+v2}
func<-function(p) {cbind(f1(p),f2(p))}
for (i in 1:19) {pfinal<-func(pfinal)}
plot(x=pfinal[1,],y=pfinal[2,],asp=1,pch=46,axes=FALSE)

fulla

Aquí, a més d’aprofitar l’enfoc a objectes, s’aprofita que R ja pot multiplicar matrius tot sol, cosa que avui en dia no és gran cosa, però comparat amb el QBasic i l’Autolisp és una grans simplificació. Un altre canvi respecte aquell temps és que els llibres d’aleshores (i potser els d’ara) recomanaven fer aquests fractals a partir de transformacions afins aplicades aleatòriament i amb pesos segons les àrees. Ara, la potència de R fa molt més pràctic deixar de banda l’aleatoreïtat i aplicar totes les transformacions a la vegada, doblant el nombre de punts amb cada cicle.