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

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

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

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

Q&A

解決済

1回答

268閲覧

許容範囲内の連続する数値のみを抽出

iiist

総合スコア9

R

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

0グッド

0クリップ

投稿2022/05/26 11:22

Rを用いて以下のようなデータの抽出をしたいです。
また、dplyrやfor文を使っていただけますと幸いです

イメージ説明

上記の画像のようなデータがあるとします。

numのn+1行目の数字がn行目の+5までの値の場合は抽出したいです。
+5以上になると以降のデータは必要ありません。
例えば、id1だと1,2,3,4まで抽出し、id2だと1,2,3,5,6,9,10の全てを抽出したいです。

様々試してみましたが、できませんでした。
ご教授いただけますと幸いです。

何卒よろしくお願い申し上げます。

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

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

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

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

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

guest

回答1

0

ベストアンサー

r

1suppressMessages(library(dplyr)) 2 3df <- data.frame( 4 id = c(rep(1, 6), rep(2, 7)), 5 num = c(1, 2, 3, 4, 11, 12, 1, 2, 3, 5, 6, 9, 10) 6) 7 8dfx <- df %>% 9 group_by(id) %>% 10 filter(cummin(num - lag(num, default=Inf) < 5) == 1) 11 12print(dfx) 13 14# 15# A tibble: 10 × 2 16# Groups: id [2] 17 id num 18 <dbl> <dbl> 19 1 1 1 20 2 1 2 21 3 1 3 22 4 1 4 23 5 2 1 24 6 2 2 25 7 2 3 26 8 2 5 27 9 2 6 2810 2 9 2911 2 10

投稿2022/05/26 12:35

編集2022/05/26 14:16
melian

総合スコア19703

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

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

iiist

2022/05/26 13:16

melian様 ご回答くださいまして、誠にありがとうございます。 いつも勉強させていただいております。 上記のコードを試してみたのですが、例のid1の4が消えて表示されてしまいました。 大変恐縮ではございますが、解決方法がありましたら再度ご教授いただければ幸いです。 何卒よろしくお願い申し上げます。
melian

2022/05/26 13:19

はい、4 の次は 11 なので条件に当てはまりません。
melian

2022/05/26 13:24

つまり、 > numのn+1行目の数字がn行目の+5までの値の場合は抽出したい ではなく、 > numのn行目の数字がn-1行目の+5までの値の場合は抽出したい ということでしょうか? それでしたら 4 が含まれることになります。
iiist

2022/05/26 14:10

> numのn行目の数字がn-1行目の+5までの値の場合は抽出したい こちらの解釈が正しいです。 説明に間違いがあり大変申し訳ございません。
melian

2022/05/26 14:17

というわけで回答を更新しました。
iiist

2022/05/26 14:23

お手数をかけしまして大変申し訳ございません。 再度ご回答くださいまして、誠にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問