Gag Driven Education

Собственно, больше всего полезного опыта и знаний я получил, желая сделать что-то совсем бесполезное и тупое. Например — писал бота, который смотрит кто когда и во сколько заходит вконтакт (так я и выучил Python), или вот например сейчас, пока битый час искал нужный параметр, чтобы построить нужный график в R.

А виной всему послужила мысль о том, что «Сетевой маркетинг — это бесконечная история о том, как люди пытаются бороться с первым началом термодинамики». Чтобы проиллюстрировать эту мысль, я задался целью сделать вот этот график:

physistsИтак, нужно было сделать простейший stacked barplot, что весьма просто делается командой barplot(). В итоге я вспомнил, как правильно инициализировать объекты в R и докопался до дао параметра xlim:

#Инициализируем данные
mydata<- data.frame(x=1,y=rep(0,100))
mydata[100,]<-1

#Тут ключевое — это as.matrix() и table(), потому что без них выйдет полная фигня, а также xlim — который позволяет сделать график не таким широким
barplot(as.matrix(table(mydata$y)), width=0.5,xlim=c(0,5),beside = FALSE,main=”Количество физиков в сетевом маркетинге”,
, col=c(“darkblue”,”red”),
legend = c(‘Все остальные’,’Физики’))

Теперь собственно, способы инициализации пустого фрейма:

1) Использование rbind

До цикла:

d = NULL

Внутри loop:

d = rbind(d, data.frame(x, y, z))

2) Способ быстрее, но требует знать конечный размер объекта

d = data.frame( x=rep(0, 10), y=rep(0,10), z=rep(0,10))

В цикле:

d[i, ] = c(x, y, z)

3) Сначала инициализируем нужные векторы, а затем:

x = NULL
y = NULL
z = NULL

Затем:

d = data.frame(x, y, z)

 

 

 

Kirill