前提・実現したいこと
少し複雑ですので、箇条書きで失礼します。
わかりにくいところがありましたら何なりとご指摘ください。
すぐに修正致します。
①持っているデータ
30日分のTwitterの投稿データ(投稿時間、テキストなど)
(データ構造)
投稿日時 | テキスト |・・・
2021/12/01 12:00 |◯◯◯◯◯◯◯◯◯◯|・・・
・
・
・
2021/12/17 19:00 |◯◯◯◯◯◯◯◯◯◯|・・・
・
・
・
2021/12/30 23:00 |◯◯◯◯◯◯◯◯◯◯|・・・
・
・
・
本来は30日分が一緒になっているが、処理の軽量化のため
df_1201, df_1202といったように1日ごとに分けている。
②実現したいこと
これらから各時間ごとの総数を取得したい。
例えば、1201_dfに対し処理を行うことで
1201_00_amountというオブジェクトに0時の投稿の行数を格納したい。
同様に、1時から23時までのそれぞれの行数を取得したい。
また、データフレームは先述の通り12/01~12/30までの30日分あるため、
それぞれamount_1201_00からamount_1230_23まで作成したい。
以上、実現したいことになります。
試したこと
自分で試したことは、
まず①stringrパッケージを使用して時間の部分を時間のみに置き換え、"時"のみを残して検索対象としたこと、
R
1df$Tweet.Date %<>% str_replace_all("-", "/") %>% 2 str_replace_all(":\d+:\d+$", "") 3>もともと日時表記が"2021-12-01 00:00:30"であったものを 4"2021/12/01 00"に成形した。
②"2021/12/1"を部分一致させ、投稿が2021/12/01分のdf_1201を作成、
R
1df_1201 <- df %>% filter(str_detect(Tweet.Date, "2021/12/01"))
③あとはひたすらそれぞれの時間帯ごとに行数を取得
R
1df_1201_00 <- rct_df_1201 %>% filter(Tweet.Date %in% "2021/12/01 00") 2amount_1201_00 <- df_1201_00 %>% NROW() %>% as.numeric()
といったものです。
しかし、タイプミスによって値を正しく格納できていなかったり、
どれがどの値なのか分からず後の処理に使えなかったりと問題が多発しています。
そして時間がかかり過ぎ、
行数もとんでもなく長くなるため気が遠くなりそうです…。
自力解決をと自分でも調べてみたのですが、
具体的にどのような処理が必要なのかわからず途方に暮れています。
どうかお力をお貸しいただけないでしょうか。
よろしくお願いいたします。
なお、処理の対象とするデータフレームですが
便宜上、日にちごとに分けて処理を行いましたが
分けずに処理できる様であれば分けていただかなくても構いません。
補足情報(FW/ツールのバージョンなど)
RStudio 2021.09.0+351
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/19 00:57 編集