2016-05-22 13 views
0

データから年を抽出して数えようとしていました。データをRから抽出​​して数えます。

私は、データのフォーマットを変更:

a$time = strptime(a$time, format="%m/%d/%y %I:%M %p") 

、今私が表示されます何回年間のかを知りたいです。たとえば、2008年のデータはいくつあるのですか?誰でも助けてくれますか?あなたが任意のデータを供給していないので

答えて

0

、私は、私は日付のシーケンスを生成するseq()を使用しています2007年と2017

a <- data.frame(time = seq(as.POSIXct("2007-01-01"), as.POSIXct("2017-01-01"), by = 60 * 60)) 

の間、多くの異なる日が含まれdata.frame 1の列を生成しています2007-01-01から2017-01-01まで、各日付の差は60 * 60秒(つまり1時間)

ここでは、データとフレームの先頭に1時間分)。

head(a) 
#     time 
# 1 2007-01-01 00:00:00 
# 2 2007-01-01 01:00:00 
# 3 2007-01-01 02:00:00 
# 4 2007-01-01 03:00:00 
# 5 2007-01-01 04:00:00 
# 6 2007-01-01 05:00:00 

あなたは毎年data.frameに表示された回数を知ることに興味を持っています。そこで、私たちは年によって日付の書式を設定することができます("%Y"

例えば

、ヘルプファイル?table

テーブルから

head(format(a$time, format = "%Y")) ## gives the 'head' of the data, formatted in years. 
## [1] "2007" "2007" "2007" "2007" "2007" "2007" 

は、不測の事態を構築するために、クロス分類要因を使用しています因子レベルの各組み合わせにおけるカウントの表。

つまり、各値の出現回数をカウントします。したがって、table()を使用して、毎年の発生回数をカウントすることができます。

段階にこれを分解:

t <- format(a$time, format = "%Y") 
head(t) 
[1] "2007" "2007" "2007" "2007" "2007" "2007" 

をだから、毎年のデータで発生した回数を取得するために、我々はtable(t)を使用することができます。

table(t) 
# 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 
# 8760 8784 8760 8760 8760 8784 8760 8760 8760 8784 1 

そして、あなたはこのdata.frameとして保存されたい場合は、あなたが指定した年のために収集されたデータの量を確認するには

df_t <- as.data.frame(table(t)) 
#  t Freq 
# 1 2007 8760 
# 2 2008 8784 
# 3 2009 8760 
# 4 2010 8760 
# 5 2011 8760 
# 6 2012 8784 

を使用することになり、ちょうどそのため、このdata.frameのサブセット年。

df_t[df_t$t == 2008,] 
# t Freq 
# 2 2008 8784 

だから我々は唯一そうのように、あなたの時間のうち、年間をお願いし、ちょうど4桁の年を引き出すために、2008年

+0

私はRに新しいので、私はそれを理解できないことを申し訳ありません。データは、異なる年の多くの異なる日で構成されているようなもので、今年収集されたデータの数を知りたいだけです。それを私に説明してもらえますか?ありがとう – RMghost

+0

@RMghost - 私は詳細を追加しました。これは役に立ちますか? – SymbolixAU

0

のための8784回の観測を持っている:あなた

a$years = format(a$time, format="%Y") 

その後これらをdplyrで最も簡単に集計できます。、詳細については

library(dplyr) 
a %>% transmute(years = format(time, format="%Y")) %>% filter(years == "2008") %>% tally 

ハドレーのdplyrのビネットを始めるには絶好の場所です::だけ年を引き出し、フィルタだけで、特定の年のために、その後、それらをカウントアップするコードのチャンク全体は次のようになりhttps://cran.rstudio.com/web/packages/dplyr/vignettes/introduction.html

関連する問題