繰り返し番号のあるシーケンス

フェリックスT。

データ

私はdata.frame次のようなものを持っています:

df <- data.frame(id = c(1:10),
                 color = c(rep("red", 5), rep("blue", 5)))
df
#>    id color
#> 1   1   red
#> 2   2   red
#> 3   3   red
#> 4   4   red
#> 5   5   red
#> 6   6  blue
#> 7   7  blue
#> 8   8  blue
#> 9   9  blue
#> 10 10  blue

期待される結果

新しい列を作成しようとしています。たとえばpair、2つの連続するIDの各グループにペアIDを割り当てます。たとえばdata.frame、次のようなで終わりたいと思います。

df
#>    id color pair
#> 1   1   red    1
#> 2   2   red    1
#> 3   3   red    2
#> 4   4   red    2
#> 5   5   red    3
#> 6   6  blue    3
#> 7   7  blue    4
#> 8   8  blue    4
#> 9   9  blue    5
#> 10 10  blue    5

現在の方法

私が疑問に思っているのは、私がすでに行っていることよりも、これを達成するためのより簡潔な方法があるかどうかです。seq()しかし、私は運が悪かったのでドキュメントを調べましたこれが私が現在持っているものです。これは私に望ましい出力を与えますが、あまり簡潔ではありません。

df %>% 
  dplyr::mutate(pair = sort(rep(seq(length.out = nrow(df)/2),2)))

#     id  color   pair
# 1   1   red    1
# 2   2   red    1
# 3   3   red    2
# 4   4   red    2
# 5   5   red    3
# 6   6  blue    3
# 7   7  blue    4
# 8   8  blue    4
# 9   9  blue    5
# 10 10  blue    5

誰かが何かアイデアを持っていますか、それ以外の別の機能seq()が仕事をしますか?

akrun

別のオプション

library(dplyr)
df %>%
   mutate(pair = as.integer(gl(n(), 2, n())))
#    id color pair
#1   1   red    1
#2   2   red    1
#3   3   red    2
#4   4   red    2
#5   5   red    3
#6   6  blue    3
#7   7  blue    4
#8   8  blue    4
#9   9  blue    5
#10 10  blue    5

またはとrepcumsum

df %>% 
    mutate(pair = cumsum(rep(c(TRUE, FALSE), length.out = n())))

または、はるかに単純なケース base R

df$pair <- c(TRUE, FALSE)
df$pair <- cumsum(df$pair)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

繰り返し行のシーケンス番号を生成する方法

分類Dev

繰り返しシーケンスの次の番号を返す関数

分類Dev

繰り返しのある日付のシーケンスを作成する

分類Dev

別の列の繰り返し番号のシーケンスを数える-パンダ

分類Dev

IDの長さが等しくないIDごとに繰り返される番号のシーケンス

分類Dev

IDの長さが等しくないIDごとに繰り返される番号のシーケンス

分類Dev

乱数のシーケンスを繰り返し生成する

分類Dev

正規表現を使用して繰り返し番号シーケンスを検索する

分類Dev

イベントの繰り返しシーケンスを見つける方法

分類Dev

パンダの繰り返しシーケンスを数える

分類Dev

繰り返し値のグループ/シーケンスを特定する

分類Dev

バイトの最長の繰り返しシーケンス

分類Dev

整数の繰り返しシーケンスを確認する方法

分類Dev

core.logic:数の繰り返しシーケンスを生成する方法は?

分類Dev

シーケンスを繰り返して列を埋める

分類Dev

R で繰り返しシーケンスを作成する

分類Dev

別の値に基づく繰り返しシーケンス

分類Dev

Arduino:動く光の繰り返しシーケンス

分類Dev

繰り返しシーケンスの正規表現数量詞

分類Dev

文字の繰り返しシーケンス

分類Dev

正規表現の繰り返し文字シーケンス

分類Dev

最長の繰り返しシーケンスに一致する(繰り返しシーケンスで構成されていない)

分類Dev

ノーランダムシーケンスであるが無限に繰り返さ確保します

分類Dev

シーケンス番号のある列

分類Dev

グーグルシートで数字の繰り返しシーケンスを生成する方法は?

分類Dev

テキスト内の繰り返しパターンシーケンスに一致する

分類Dev

Goアプリケーションの繰り返しインストール?

分類Dev

リスト内の特定の長さの繰り返しシーケンスを見つける方法は?

分類Dev

文中の単語のシーケンスの連続した繰り返しを見つける

Related 関連記事

  1. 1

    繰り返し行のシーケンス番号を生成する方法

  2. 2

    繰り返しシーケンスの次の番号を返す関数

  3. 3

    繰り返しのある日付のシーケンスを作成する

  4. 4

    別の列の繰り返し番号のシーケンスを数える-パンダ

  5. 5

    IDの長さが等しくないIDごとに繰り返される番号のシーケンス

  6. 6

    IDの長さが等しくないIDごとに繰り返される番号のシーケンス

  7. 7

    乱数のシーケンスを繰り返し生成する

  8. 8

    正規表現を使用して繰り返し番号シーケンスを検索する

  9. 9

    イベントの繰り返しシーケンスを見つける方法

  10. 10

    パンダの繰り返しシーケンスを数える

  11. 11

    繰り返し値のグループ/シーケンスを特定する

  12. 12

    バイトの最長の繰り返しシーケンス

  13. 13

    整数の繰り返しシーケンスを確認する方法

  14. 14

    core.logic:数の繰り返しシーケンスを生成する方法は?

  15. 15

    シーケンスを繰り返して列を埋める

  16. 16

    R で繰り返しシーケンスを作成する

  17. 17

    別の値に基づく繰り返しシーケンス

  18. 18

    Arduino:動く光の繰り返しシーケンス

  19. 19

    繰り返しシーケンスの正規表現数量詞

  20. 20

    文字の繰り返しシーケンス

  21. 21

    正規表現の繰り返し文字シーケンス

  22. 22

    最長の繰り返しシーケンスに一致する(繰り返しシーケンスで構成されていない)

  23. 23

    ノーランダムシーケンスであるが無限に繰り返さ確保します

  24. 24

    シーケンス番号のある列

  25. 25

    グーグルシートで数字の繰り返しシーケンスを生成する方法は?

  26. 26

    テキスト内の繰り返しパターンシーケンスに一致する

  27. 27

    Goアプリケーションの繰り返しインストール?

  28. 28

    リスト内の特定の長さの繰り返しシーケンスを見つける方法は?

  29. 29

    文中の単語のシーケンスの連続した繰り返しを見つける

ホットタグ

アーカイブ