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

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

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

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

Q&A

解決済

1回答

1178閲覧

r 5分毎にカウントされたデータ数を10分毎のデータ数に変換したい

polar

総合スコア1

R

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

0グッド

0クリップ

投稿2020/07/04 08:35

現在、5分ごとにカウントされたデータがあります。
これを10分毎のカウントデータ(5分毎のデータx2)に変換する必要があるのですが、うまくできません。
下記は実際のデータです。
やりたいことは、

<現在のデータ>
DD/MM/YYYY HH:MM:SS,value
08/07/2017 00:04:35,0
08/07/2017 00:09:35,4
08/07/2017 00:14:35,50
08/07/2017 00:19:35,20
08/07/2017 00:24:35,3
08/07/2017 00:29:35,8
08/07/2017 00:34:35,0
08/07/2017 00:39:35,1

<必要なデータ>
DD/MM/YYYY HH:MM:SS,value
08/07/2017 00:04:35,4
08/07/2017 00:14:35,70
08/07/2017 00:24:35,11
08/07/2017 00:34:35,1

発生している問題・エラーメッセージ

これはエクセルでやると、上の行とその1行下のデータの和を入力としてその計算式をコピーするだけでできるのですが、データ量が膨大で手作業でやることは無理でした。
そこで、フリーソフトのRを使ってやりたいのですが、データ操作の考え方がわかっていないのか、googleなどを検索しても解決方法を見つけることができません。

使用パソコン
Mac OS Catalina 10.15.5
Rstudio ver 1.1.456

このような状況ですので、お伺いするのは大変恐縮なのですが、どなたかご指導いただけないでしょうか。
もしくは、ここを調べて見たら良いというようなアドバイスでも大変助かります。

どうぞよろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

R

1a <- nrow(iris) 2iris2 <- iris[(1:(a/2))*2,] 3iris2$v1 <- iris[(1:(a/2))*2,1]+iris[(1:(a/2))*2-1,1]

投稿2020/07/05 04:39

shimiken

総合スコア368

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

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

polar

2020/07/06 05:10

ご返信ありがとうございます。 いただいたコードをこちらのデータに合うように色々と動かしているのですが、まだうまく動かすことができません。 ご提示いただいたコードの3行目でエラーが出てしまいます。 カウントデータが数字として認識されていなかったようでしたので、それは修正しました。 また、いただいたirisデータでは1行目の数字を10分に変換いただいたようでしたが、こちらは2行目にまとめたいデータが入っていたので、v1からv2に変更しました。 下記がテストデータと修正したコードになります。 どうしてこのようなコードになるのか、まだ理解できていないのですが、どこが間違っているのか教えていただけると大変ありがたいです。 どうぞよろしくお願いいたします。 ##データフレーム作成 dat <- c( "12/07/2017 01:04:35", "12/07/2017 01:09:35", "12/07/2017 01:14:35", "12/07/2017 01:19:35", "12/07/2017 01:24:35", "12/07/2017 01:29:35", "12/07/2017 01:34:35", "12/07/2017 01:39:35", "12/07/2017 01:44:35", "12/07/2017 01:49:35", "12/07/2017 01:54:35", "12/07/2017 01:59:35", "12/07/2017 02:04:35", "12/07/2017 02:09:35", "12/07/2017 02:14:35" ) count <-c(18,50,50,48,44,24,49,49,50,50,50,50,49,50,50) tes <- data.frame(dat, count) a <- nrow(tes) iris2 <- tes[(1:(a/2))*2,] iris2$v2 <- tes[(1:(a/2))*2,1]+tes[(1:(a/2))*2-1,1]
shimiken

2020/07/06 05:25

最後の行を以下に修正してください。 iris2$v2 <- tes[(1:(a/2))*2,2]+tes[(1:(a/2))*2-1,2]
polar

2020/07/06 05:43

さっそくのご返信ありがとうございます。 無事に動かすことできました。大変助かりました。 まだいただいたコードの意味が理解できていないので勉強したいと思います。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問