Mia skrev för ett litet tag sedan ett inlägg om att hon ville ha felmeddelanden i annan färg än annan output. Då (R version 2.14.2) såg det ut så här:
Nu, några månader senare (R version 2.15.2), ser det ut så här:
Tack så mycket R Core Team! Ni är bra!
Visar inlägg med etikett R. Visa alla inlägg
Visar inlägg med etikett R. Visa alla inlägg
lördag 24 november 2012
måndag 27 augusti 2012
Stora data, små triumfer
Jag har visserligen jobbat med stora datamaterial förut, men då har det varit data som jag skapat, så jag har kunnat lagt dem snyggt i matriser och allt har gått ganska bra. Lite parallellprocessning behövde jag göra, men då i dess mest primitiva form (helt separata körningar på tre olika datorer, som råkade ha tre olika operativsystem...).
Stora RIKTIGA data är en helt annan fråga. Jag fick ett jättefint datamaterial i mina händer nyligen och hade lite problem med att läsa ihop (merga) olika deldataset med varandra i R. Lyckades efter lite snubblande med det jag ville. Hittade trevliga biblioteket sqldf, som är föredömligt dokumenterat. Det använde jag för att sortera data, sedan använde jag en vanlig merge utan sortering. I ett annat moment behövde jag göra en "reshape", men fick aldrig R att orka med. Troligen var det sortering som spökade även där. Det löste jag med en loop (jag vet, det är fult). Det gick inte snabbt, men det gick. Det man inte har i huvudet får man ha i benen.
Stora RIKTIGA data är en helt annan fråga. Jag fick ett jättefint datamaterial i mina händer nyligen och hade lite problem med att läsa ihop (merga) olika deldataset med varandra i R. Lyckades efter lite snubblande med det jag ville. Hittade trevliga biblioteket sqldf, som är föredömligt dokumenterat. Det använde jag för att sortera data, sedan använde jag en vanlig merge utan sortering. I ett annat moment behövde jag göra en "reshape", men fick aldrig R att orka med. Troligen var det sortering som spökade även där. Det löste jag med en loop (jag vet, det är fult). Det gick inte snabbt, men det gick. Det man inte har i huvudet får man ha i benen.
lördag 18 augusti 2012
Sisyfos och "kunden har alltid rätt"
Jag ägnade ungefär en arbetsdag den här veckan åt att ändra ett script för en automatgenererad graf (som en Kollega skrivit) till en mindre elegant lösning som Beställaren ville ha. Grafen byggde på en hel del smart kod som var svår att arbeta bort och jag började till slut om från början.
Har nu lika mycket dokumentation som kod i scriptet, och har lagt in möjligheter att ändra utan att slita koden i småbitar. Inte snyggt, men användbart. Bättre eller sämre än det var från början?
Har nu lika mycket dokumentation som kod i scriptet, och har lagt in möjligheter att ändra utan att slita koden i småbitar. Inte snyggt, men användbart. Bättre eller sämre än det var från början?
måndag 6 augusti 2012
Statistikern och det ologiska
Det (de) ologiska är statistikerns kryptonit. Tidigare har jag trott att oändligt tålamod var enda försvaret, men det är inte riktigt sant. Med noggrann versionshantering (Git eller allmän nit) kan man åtminstone spåra galenskapen. Det lättar upp humöret.
måndag 14 maj 2012
Det var bättre förr
Vem har raderat alla excel-inläsnings-funktioner från R-version 2.15.0 (Mac)? Jag kör nu version 2.14.2 och surar.
onsdag 9 maj 2012
Olika färger i R
Förut hade jag en kollega som gjorde små R-funktioner åt mig när jag gnällde om att R inte gjorde saker som jag ville. Vill ni bli lika omtyckta som honom, tipsa mig om hur man löser problemet nedan:)
En sak som jag länge tänk på som är irriterande med R är att det är samma färg på output, varnings- och felmeddelanden i konsolen. Detta måste man väll kunna ändra i detta fantastiska program?! Frågan är hur, min snabba sökning på Google hjälpte föga - några tips?
En sak som jag länge tänk på som är irriterande med R är att det är samma färg på output, varnings- och felmeddelanden i konsolen. Detta måste man väll kunna ändra i detta fantastiska program?! Frågan är hur, min snabba sökning på Google hjälpte föga - några tips?
onsdag 2 maj 2012
Data till kolumner
En av de få saker jag gillar med Excel är funktionen "data till kolumner". Jag har därför just suttit och programmerat en motsvarande funktion till R (fick ett dataset i behov av en del handpåläggning från en klient). Och nej, jag vill inte veta om det redan fanns!
data.to.columns<-function(Oldcol, Separators){
antal<-nchar(as.character(Oldcol), type="chars")
maxantal<-max(antal)
tempframe<-as.data.frame(matrix(NA,length(Oldcol),maxantal))
new.col<-as.data.frame(matrix(0,length(Oldcol),maxantal))
col.assign<-as.data.frame(matrix(0,length(Oldcol),maxantal))
for (i in 1:maxantal){
tempframe[antal>=i,i]<-substr(Oldcol[antal>=i],i,i)
for (separators in 1:length(Separators)){
new.col[!is.na(tempframe[,i])&tempframe[,i]==Separators[separators],i]<-1
}
if (i==1){
col.assign[!is.na(tempframe[,i]),i]<-1}
if (i>1){
col.assign[!is.na(tempframe[,i]),i]<-new.col[!is.na(tempframe[,i]),i]+col.assign[!is.na(tempframe[,i]),i-1]}
}
for (i in 1:maxantal){
col.assign[new.col[,i]==1,i]<-0
}
n.new.col<-max(apply(new.col,1,sum))+1
new.data<-matrix("",length(Oldcol),n.new.col)
for (columns in 1:n.new.col){
for (i in 1:maxantal){
new.data[col.assign[,i]==columns,columns]<-(paste(new.data[col.assign[,i]==columns,columns],tempframe[col.assign[,i]==columns,i], sep=""))
}
}
new.columns<-as.data.frame(new.data)
return(new.columns)
}
testdata<-c("NA","34+15+Okänt","45+35+NA+17", "2+4", "35 NA" )
data.to.columns(Oldcol=testdata, Separators=c("+"," "))
Kod nedan. (Skönhetsupplevelse utlovas ej!)
data.to.columns<-function(Oldcol, Separators){
antal<-nchar(as.character(Oldcol), type="chars")
maxantal<-max(antal)
tempframe<-as.data.frame(matrix(NA,length(Oldcol),maxantal))
new.col<-as.data.frame(matrix(0,length(Oldcol),maxantal))
col.assign<-as.data.frame(matrix(0,length(Oldcol),maxantal))
for (i in 1:maxantal){
tempframe[antal>=i,i]<-substr(Oldcol[antal>=i],i,i)
for (separators in 1:length(Separators)){
new.col[!is.na(tempframe[,i])&tempframe[,i]==Separators[separators],i]<-1
}
if (i==1){
col.assign[!is.na(tempframe[,i]),i]<-1}
if (i>1){
col.assign[!is.na(tempframe[,i]),i]<-new.col[!is.na(tempframe[,i]),i]+col.assign[!is.na(tempframe[,i]),i-1]}
}
for (i in 1:maxantal){
col.assign[new.col[,i]==1,i]<-0
}
n.new.col<-max(apply(new.col,1,sum))+1
new.data<-matrix("",length(Oldcol),n.new.col)
for (columns in 1:n.new.col){
for (i in 1:maxantal){
new.data[col.assign[,i]==columns,columns]<-(paste(new.data[col.assign[,i]==columns,columns],tempframe[col.assign[,i]==columns,i], sep=""))
}
}
new.columns<-as.data.frame(new.data)
return(new.columns)
}
Exempel:
testdata<-c("NA","34+15+Okänt","45+35+NA+17", "2+4", "35 NA" )
data.to.columns(Oldcol=testdata, Separators=c("+"," "))
lördag 31 mars 2012
R och min dator
Programmet R kommer nog att nämnas många gånger i denna blog. Jag säger ibland att jag inte gillar R, det är inte sant, så skriver jag det någon gång vet ni att det är övergående.
Idag är det inte jag som hyser agg mot R utan min dator. Jag hoppas att datorn är som jag, dvs snart förstår att R faktiskt är ett fantastiskt program.
Snälla dator, kom igen nu. Börja gilla R igen!
Idag är det inte jag som hyser agg mot R utan min dator. Jag hoppas att datorn är som jag, dvs snart förstår att R faktiskt är ett fantastiskt program.
Snälla dator, kom igen nu. Börja gilla R igen!
Prenumerera på:
Inlägg (Atom)