質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Q&A

2回答

1011閲覧

日次データから月末データだけ取得したい。

Hikoans

総合スコア14

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

0グッド

0クリップ

投稿2017/11/27 08:03

下記のような日次データから月末データだけ抽出したいのですが、どうしたらよいでしょうか?

mkw[1:20,1:3]

Ajinomoto.Co...Inc. ANA.Holdings.Inc. Alps.Electric.Co...Ltd.

2001-12-28 0.004878955 0.002738446 0.0009432550
2001-12-31 0.004878955 0.002738446 0.0009432550
2002-01-01 0.004878955 0.002738446 0.0009432550
2002-01-02 0.004878955 0.002738446 0.0009432550
2002-01-03 0.004878955 0.002738446 0.0009432550
2002-01-04 0.004670500 0.002665171 0.0009438024
2002-01-07 0.004683050 0.002705541 0.0009796808
2002-01-08 0.004754818 0.002742026 0.0010226579
2002-01-09 0.004561466 0.002769419 0.0010857615
2002-01-10 0.004537064 0.002815409 0.0011507552
2002-01-11 0.004639621 0.002805779 0.0011293320
2002-01-14 0.004639621 0.002805779 0.0011293320
2002-01-15 0.004768838 0.002914184 0.0011317934
2002-01-16 0.004761644 0.002869531 0.0011121375
2002-01-17 0.004757901 0.002914818 0.0010876459
2002-01-18 0.004685725 0.002888376 0.0011052630
2002-01-21 0.004750487 0.002943190 0.0011586207
2002-01-22 0.004789673 0.002952862 0.0011658526
2002-01-23 0.004769691 0.002942204 0.0012441655
2002-01-24 0.004677945 0.002910274 0.0012150992

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

月末かどうかを判定する関数を作りsubsetを取ればいいでしょうね。

次の様なデータフレームdf1が定義されているとします。

V1 V2 V3 V4 1 2001-12-28 0.004878955 0.002738446 0.0009432550 2 2001-12-31 0.004878955 0.002738446 0.0009432550 3 2002-01-01 0.004878955 0.002738446 0.0009432550

「対象の日付とその一つ後の日付の年月が異なる。⇒対象の日付は月末である。」
と考えると次のような形でいけるのではないでしょうか。

R

1is.tsukizue <- function(d1, d2){ 2 s1 <- strftime(d1, "%y-%m") 3 s2 <- strftime(d2, "%y-%m") 4 return(s1!=s2) 5} 6 7# 行単位で処理を完結させるため 「次の行の日付」を新しい桁にコピー。 8df1[,"nextd"] <- c(df[2:nrow(df1),"V1"], "9999-12-31") 9 10# 月末データの抽出 11df1[is.tsukizue(df1$V1, df1$nextd),]

投稿2017/11/29 15:15

KojiDoi

総合スコア13671

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんな感じでどうでしょうか?

翌日が違う月になる日を抽出してます

R

1N <- 365 2date <- seq(as.Date("2017/1/1"), by = "day", length.out = N) 3d0 <- c(1:N) 4df <- data.frame(date, d0) 5 6df[months(df$date + 1) != months(df$date),]

投稿2017/11/27 23:33

magichan

総合スコア15898

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問