Имея дело с повторяющимися задачами в R

Мой фаворит "начинает учиться кодировать" проект, Игровые Змеи или Рынок , потому что это позволяет Вам запускаться медленный (переменные для хранения текущего "положения червя", массивы для хранения положений червя, если червь более длинен, чем одна "часть", циклы, чтобы заставить червя переместиться, если/переключатель позволить пользователю изменять направление червя...). Это также позволяет включать все больше материала в проект в конечном счете, например, объектно-ориентированное программирование (один червь является одним объектом с шансом иметь двух червей одновременно) с наследованием (перейдите от "Змей" к "Рынку" или наоборот, где червь немного изменяет поведение).

я предложил бы, чтобы Вы использовали XNA Microsoft для запуска. По моему опыту, то, чтобы начинать программировать является намного большим количеством забавы, если Вы видите что-то на своем экране, и XNA делает действительно легким получить что-то перемещающееся в экран. Довольно легко сделать мало изменений и получить другой взгляд, например, путем изменения цветов, таким образом, он видит, что его действия имеют эффект-> Впечатление от успеха. Успех является забавой, которая является большой мотивацией для продолжения изучения.

17
задан ATMathew 12 May 2011 в 02:15
поделиться

2 ответа

В качестве общего руководства, если у вас есть несколько объектов, к которым вы хотите применить одни и те же операции, вы должны собрать их в одну структуру данных. Затем вы можете использовать циклы, [sl] apply и т. Д. Для выполнения операций за один раз. В этом случае вместо отдельных фреймов данных df1, df2 и т. Д. Вы можете поместить их в список фреймов данных и затем запустить na.omit для всех из них:

dflist <- list(df1, df2, <...>)
dflist <- lapply(dflist, na.omit)
20
ответ дан 30 November 2019 в 13:03
поделиться

Помимо ответа @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
3
ответ дан 30 November 2019 в 13:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: