2016-09-08 11 views
-1
species <- c("frog1","frog1","frog1","frog1","frog1","frog1","frog1","frog1" 
     ,"frog1","frog1","frog2","frog2","frog2","frog2","frog2", 
     "frog2","frog2","frog2","frog2","frog2") 
month <- c(1,12,5,8,10,3,5,7,9,4,2,4,6,7,6,3,8,9,11,1) 
number <- c(3,4,5,1,2,3,4,7,6,7,3,5,6,7,8,9,9,5,3,1) 
a<- data.frame(species,month,number) 

私のデータフレームは、異なる月に異なる数のカエル、カエルとカエルの2種類を捕獲したことを意味します。季節に最適な月を選択してください

私は月を4シーズンに変換したいと思います。最初のシーズンは1ヶ月目、12ヶ月目、2月目、4,3,5,3番目は7,6,8、そして10,9,11です。第1シーズン、第12月、第2月、第2シーズンを同じように選択したいと思っています。第2シーズンには、第1シーズン、第3シーズン、5ヶ月後などになります。たとえば、カエル​​1では2ヶ月の1と12がありますが、最初のシーズンには12ヶ月ではなく1ヶ月を取りに行きたいと思います。

2種類のカエルで最も重要な月を4つの季節に交互に選ぶことができる列を作成するにはどうすればいいですか?たとえば、カエル​​1では2と1と12があります。最初のシーズンは12月の代わりに1月を選びたいと思っています。

species <- c("frog1","frog1","frog1","frog1","frog1","frog1","frog1","frog1" 
,"frog1","frog1","frog2","frog2","frog2","frog2","frog2", 
"frog2","frog2","frog2","frog2","frog2") 
month <- c(1,12,5,8,10,3,5,7,9,4,2,4,6,7,6,3,8,9,11,1) 
number <- c(3,4,5,1,2,3,4,7,6,7,3,5,6,7,8,9,9,5,3,1) 
choosemonth <- c("season1","","","","season4","","","season3","","season2", 
     "","season2","","season3","","","","season4","","season1") 
b<- data.frame(species,month,number,choosemonth) 

答えて

0

私はあなたの最終的な所望の結果で少し推測しているが、ここでは季節性と重要性を作成する方法だ、と私は最も重要な月のために解決しています:

私の予想される出力がありますそれぞれの種ここ

はdplyrと方法です:

library(dplyr) 
a %>% 
    # Season is basically just one-off quarters 
    mutate(season = trunc((month + 1)%%12/3), 
    # for each month the value mod 3 goes in order 2,3,1 
    importance = c(2,3,1)[month %% 3 + 1]) %>% 
    group_by(season, species) %>% 
    # keep only those with the max importance 
    filter(importance == max(importance)) 

はEDIT:それはあなただけのフラグに最も重要で価値をしたいのように、見えますので、ここでそれを行う方法ですが、

a %>% 
    # Season is basically just one-off quarters 
    mutate(season = trunc((month + 1)%%12/3), 
    # for each month the value mod 3 goes in order 2,3,1 
     importance = c(2,3,1)[month %% 3 + 1]) %>% 
    mutate(choosemonth = ifelse(importance == 3, paste0('season',season + 1),'')) 

EDIT 2:編集もう一回、3シーズンではなく4

に分けました
関連する問題