Мой фаворит "начинает учиться кодировать" проект, Игровые Змеи или Рынок , потому что это позволяет Вам запускаться медленный (переменные для хранения текущего "положения червя", массивы для хранения положений червя, если червь более длинен, чем одна "часть", циклы, чтобы заставить червя переместиться, если/переключатель позволить пользователю изменять направление червя...). Это также позволяет включать все больше материала в проект в конечном счете, например, объектно-ориентированное программирование (один червь является одним объектом с шансом иметь двух червей одновременно) с наследованием (перейдите от "Змей" к "Рынку" или наоборот, где червь немного изменяет поведение).
я предложил бы, чтобы Вы использовали XNA Microsoft для запуска. По моему опыту, то, чтобы начинать программировать является намного большим количеством забавы, если Вы видите что-то на своем экране, и XNA делает действительно легким получить что-то перемещающееся в экран. Довольно легко сделать мало изменений и получить другой взгляд, например, путем изменения цветов, таким образом, он видит, что его действия имеют эффект-> Впечатление от успеха. Успех является забавой, которая является большой мотивацией для продолжения изучения.
В качестве общего руководства, если у вас есть несколько объектов, к которым вы хотите применить одни и те же операции, вы должны собрать их в одну структуру данных. Затем вы можете использовать циклы, [sl] apply и т. Д. Для выполнения операций за один раз. В этом случае вместо отдельных фреймов данных df1
, df2
и т. Д. Вы можете поместить их в список фреймов данных и затем запустить na.omit
для всех из них:
dflist <- list(df1, df2, <...>)
dflist <- lapply(dflist, na.omit)
Помимо ответа @Hong Ooi, я предлагаю изучить пакеты plyr и изменить форму . В вашем случае может быть полезно следующее:
df1$name <- "var1"
df2$name <- "var2"
df3$name <- "var3"
df <- rbind(df1,df2,df3)
df <- na.omit(df)
##Get various means:
> ddply(df,~name,summarise,AvgName=mean(value))
name AvgName
1 var1 31.0
2 var2 126.8
3 var3 300.0
> ddply(df,~Region,summarise,AvgRegion=mean(value))
Region AvgRegion
1 Africa 190.00000
2 Asia 130.00000
3 Europe 86.66667
4 N.America 213.33333
5 S.America 143.00000
> ddply(df,~variable,summarise,AvgVar=mean(value))
variable AvgVar
1 2004 31.0
2 2005 126.8
3 2006 300.0
##Transform the data.frame into another format
> cast(Region+variable~name,data=df)
Region variable var1 var2 var3
1 Africa 2004 20 NA NA
2 Africa 2005 NA 350 NA
3 Africa 2006 NA NA 200
4 Asia 2004 35 NA NA
5 Asia 2005 NA 55 NA
6 Asia 2006 NA NA 300
7 Europe 2004 20 NA NA
8 Europe 2005 NA 40 NA
9 Europe 2006 NA NA 200
10 N.America 2004 50 NA NA
11 N.America 2005 NA 90 NA
12 N.America 2006 NA NA 500
13 S.America 2004 30 NA NA
14 S.America 2005 NA 99 NA
15 S.America 2006 NA NA 300