カンマ区切りの数値を含むRの文字列を並べ替える方法

Usman Khaliq

私は次のデータフレームを持っています:

library(tidyverse)
library(tibble)
data_frame <-
  tribble(
    ~a,                                                 ~b,
    "2,29,3,30,31,4,5,2,28,29,3,30,4,5",                "x",
    "12,13,14,15,18,19,20,12,13,14,15,18,19,20,21" ,     "y"
  )

このデータフレームにcと呼ばれる新しい列を作成します。この列は、文字列aを番号の昇順並べて表示できます。Cは、理想的には次のようになります。

library(tidyverse)
library(tibble)
data_frame <-
  tribble(
    ~a,                                                 ~b,            ~c,
    "2,29,3,30,31,4,5,2,28,29,3,30,4,5",                "x",           "2,2,3,3,4,4,5,5,28,29,29,30,30,31"
    "12,13,14,15,18,19,20,12,13,14,15,18,19,20,21" ,     "y",          "12,12,13,13,14,14,15,15,18,18,19,19,20,20,21"
  )

どうすればこれを達成できますか?私が使って試してみましたstr_sortからstringr、パッケージ、およびmixedsortから関数gtoolsライブラリを。ありがとうございました。

akrun

ではtidyverse、をseparate_rows変換する際type使用して、「a」を区切り文字で分割し、次にarrange「b」、「a」、列を「b」でグループ化しpasteて、新しい列に「a」の要素をバインドします。元のデータセット

library(dplyr)
library(tidyr)
 data_frame %>% 
    # // split a by the delimiter and expand the rows
    separate_rows(a, convert = TRUE) %>%
     # // order the columns
     arrange(b, a) %>%
     # // grouped by b
     group_by(b) %>%
     # paste the elements of a
     # toString => paste(..., collapse=", ") 
     summarise(c = toString(a)) %>%
     # // select the column c
     select(c) %>%
     # // bind with the original dataset
     bind_cols(data_frame, .) 
# A tibble: 2 x 3
#  a                                            b     c                                                         
#  <chr>                                        <chr> <chr>                                                     
#1 2,29,3,30,31,4,5,2,28,29,3,30,4,5            x     2, 2, 3, 3, 4, 4, 5, 5, 28, 29, 29, 30, 30, 31            
#2 12,13,14,15,18,19,20,12,13,14,15,18,19,20,21 y     12, 12, 13, 13, 14, 14, 15, 15, 18, 18, 19, 19, 20, 20, 21

またはで使用strsplitmapます。私たちは、と「」文字列を分割,、以上のループlistとをmap、に変換しnumericsortその後、pasteその単一の文字列に

library(purrr)
data_frame %>% 
   mutate(c = map_chr(strsplit(a, ","), ~ 
                  toString(sort(as.numeric(.x)))))
# A tibble: 2 x 3
#  a                                            b     c                                                         
#  <chr>                                        <chr> <chr>                                                     
#1 2,29,3,30,31,4,5,2,28,29,3,30,4,5            x     2, 2, 3, 3, 4, 4, 5, 5, 28, 29, 29, 30, 30, 31          
#2 12,13,14,15,18,19,20,12,13,14,15,18,19,20,21 y     12, 12, 13, 13, 14, 14, 15, 15, 18, 18, 19, 19, 20, 20, 21           

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

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

編集
0

コメントを追加

0

関連記事

カンマ区切りの文字列を並べ替える方法は?

mysqlでコンマ区切りの値を含む列を並べ替えるクエリ

数千の区切り文字と文字列で数値を並べ替える

スペースで区切られた数値を含む文字列のリストを並べ替える方法は?

bashの区切り文字を使用して列の数値に基づいて並べ替える方法

カンマ区切りの値で並べ替える

kotlinで数値を含む文字列を並べ替える方法

bashでカンマ区切り値を並べ替える方法は?

kotlinの数値を含む文字列の並べ替え

複数の区切られた数値で文字列を並べ替える

カンマ区切りの文字列から配列を作成し、それを低から高に並べ替えてから、カンマ区切りの文字列に結合する方法を教えてください。

行区切り文字を含むファイルの並べ替え

パンダの文字列を含む列を並べ替える

複数の区切り文字でファイルを並べ替える方法は?

区切り文字の前の値に基づいてRのベクトル要素を並べ替える方法

複数の数字を含む文字列を自然に並べ替える方法

値のみを含むカンマ区切りの文字列を返します

カンマ区切りのパイプ区切りレコードのリストを並べ替える

SQLServerの関連テーブルからコンマ区切りの列値を並べ替える

数字を含む文字列のリストを数値で並べ替える方法は?

Vimでコンマ区切りの単語を並べ替える方法

数値をコンマ区切りの数値に変換し、数値で並べ替えます

'|〜'で区切られた複数のフィールドを含むList <String>を並べ替える方法

他のロケールでコンマ千で区切られた数値を並べ替える方法

数値を含む文字列をランダムに並べ替える

C ++で負の数と正の数の両方を含む文字列の配列を並べ替える方法。

SQL Serverは、コンマ区切りの文字列を1つの列に並べ替えます

カンマ区切りの文字列をデータベースフィールドに一致させ、結果をカンマ区切りの文字列と同じ順序になるように並べ替えます

localecompareを使用して負の値を含む数値の配列を並べ替える方法は?

TOP 一覧

  1. 1

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  2. 2

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  3. 3

    CSSのみを使用して三角形のアニメーションを作成する方法

  4. 4

    ドロップダウンリストで選択したアイテムのQComboBoxスタイル

  5. 5

    ZScalerと証明書の問題により、Dockerを使用できません

  6. 6

    PyCharmリモートインタープリターはプロジェクトタブにサイトパッケージのコンテンツを表示しません

  7. 7

    Windows 10でのUSB入力デバイスの挿入/取り外しの検出

  8. 8

    Excel - count multiple words per cell in a range of cells

  9. 9

    PictureBoxで画像のブレンドを無効にする

  10. 10

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  11. 11

    スタート画面にシャットダウンタイルを追加するにはどうすればよいですか?

  12. 12

    Python / SciPyのピーク検出アルゴリズム

  13. 13

    Luaの文字列から特定の特殊文字を削除するにはどうすればよいですか?

  14. 14

    Pythonを使用して、リストからデータを読み取り、特定の値をElasticsearchにインデックス付けするにはどうすればよいですか?

  15. 15

    LinuxでPySide2(Qt for Python)をインストールするQt Designerはどこにありますか?

  16. 16

    goormIDEは、ターミナルがロードするデフォルトプロジェクトを変更します

  17. 17

    QGISとPostGIS(マップポイント(米国の地図上にraduisを使用した緯度と経度)

  18. 18

    MLでのデータ前処理の背後にある直感

  19. 19

    ターミナルから「入力ソースの変更」ショートカットを設定する

  20. 20

    パンダは異なる名前の列に追加します

  21. 21

    同じクラスの異なるバージョンを使用したクラスローディング:java.lang.LinkageError:名前の重複クラス定義を試行しました

ホットタグ

アーカイブ