数値ベクトルの各要素を因子ベクトルの「最も類似した」レベルに関連付けます

DeltaIV

私は数値ベクトルを持っています:

x <-c(-18.695, -18.695, 19.477, 0.000, 55.000, 19.477, -18.695, 48.476, 55.000, 37.798, -18.695, 19.477, 37.798, 0.000, -18.695)

levels関数から返されるレベルが次の因子ベクトル

y <- c("IV-18_7", "IV00", "IV00orig", "IV19_5", "IV37_8", "IV37_8_yp", "IV48_5", "IV48_5_yp", "IV55")

私は新しい係数ベクトルを構築するために必要zと同じ長さ、xが、に記載されているレベルを有するy、とのようにi番目の要素はzz[i]の「最も類似」要素でyの対応する要素にxx[i]言い換えると:

z <-factor(c("IV-18_7", "IV-18_7", "IV19_5", "IV00", "IV55", "IV19_5", "IV-18_7", "IV48_5", "IV55", "IV37_8", "IV-18_7", "IV19_5", "IV37_8", "IV00", "IV-18_7"), levels = y)

この例では、「最も類似している」の意味がかなり明白になるはずです。とにかくx[i]、要素をy取得し、「IV」プレフィックスを追加してから「類似」の文字列を追加することで要素が取得されるようにするという考え方です。の四捨五入x[i](ただし、残念ながら完全に等しくはありません)であり、最後に数値部分の後に接尾辞がありません。これをRで効率的にコーディングする方法がわかりません。手伝ってもらえますか?

lmo

これはあなたをかなり近づけるはずのワンライナーです。

paste0("IV", sub(".", "_", sub("\\.0$", "", sprintf("%04.1f", round(x, 1))), fixed=TRUE))

[1] "IV18_7"  "IV-18_7" "IV19_5"  "IV00"    "IV55"    "IV19_5"  "IV-18_7" "IV48_5"  "IV55" 
[10] "IV37_8"  "IV-18_7" "IV19_5"  "IV37_8"  "IV00"    "IV-18_7"

次のように動作します。元のベクトルxは、最初の有効数字に丸められます。次にsprintf、フォーマット「%04.1f」を使用すると、文字数が4未満の場合、結果の先頭に「0」が埋め込まれます。この結果はsub、ドット(ピリオド)の後に「0」が続くインスタンスをドロップする結果になります。最後に、アウターsubはドットをアンダースコアに置き換えます。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

文字列のベクトルに関連付けられた値のベクトルを返しますか?

分類Dev

ベクトルの各要素に2つの数値を追加します

分類Dev

ベクトルの各要素に別のベクトルの各要素を掛けます

分類Dev

ベクトルの各要素を別のベクトルに追加します

分類Dev

行列の各要素にベクトルの各要素を掛けます

分類Dev

ベクトルから類似した連続数のクラスターを抽出します

分類Dev

Gensimベクトルに最も類似した単語

分類Dev

数値因子レベルへの値の関連付け

分類Dev

各要素バーの最後にコンマを付けて文字列のベクトルを出力する

分類Dev

ベクトル内の各要素に次の要素を掛けます[r]

分類Dev

ベクトル内の各要素に次の要素を掛けます[r]

分類Dev

Rで2つの類似した関数をベクトル化すると、1つで機能します

分類Dev

ベクトルの類似した数をグループ化する

分類Dev

行列内で最も近い/類似した値(ベクトル)を見つける

分類Dev

R-ベクトル内の各要素を他のベクトルの各要素と合計します

分類Dev

文字ベクトルに基づいて、類似の関数をリストのさまざまな要素に適用します

分類Dev

Matlab、xの各要素を関数に渡すことでyベクトルを定義します

分類Dev

ベクトル内の複数の要素を関連付ける慣用的な方法

分類Dev

Aの各要素のベクトルBで最も近い値を見つけるR高速メソッド

分類Dev

数値ベクトルの各要素に文字列を追加するmatlab

分類Dev

文字ベクトルの各要素の出現回数を追加します

分類Dev

ベクトルの各要素の要素を同じベクトルの後続の要素で分割します

分類Dev

Rのベクトルの値ごとに関数を適用した後、因子のリストを返す関数を作成します

分類Dev

Rのベクトルの値ごとに関数を適用した後、因子のリストを返す関数を作成します

分類Dev

別の配列の各要素について、配列内で最も近い値を見つけることをベクトル化する

分類Dev

Rの数値ベクトルの各要素から最初の桁を抽出します

分類Dev

特定のベクトルに類似したすべてのベクトルをすばやく見つける方法

分類Dev

最後の単語の前に「and」を付けてコンマで区切った単語のベクトルを連結するstringr関数

分類Dev

ベクトルの各要素をifelse

Related 関連記事

  1. 1

    文字列のベクトルに関連付けられた値のベクトルを返しますか?

  2. 2

    ベクトルの各要素に2つの数値を追加します

  3. 3

    ベクトルの各要素に別のベクトルの各要素を掛けます

  4. 4

    ベクトルの各要素を別のベクトルに追加します

  5. 5

    行列の各要素にベクトルの各要素を掛けます

  6. 6

    ベクトルから類似した連続数のクラスターを抽出します

  7. 7

    Gensimベクトルに最も類似した単語

  8. 8

    数値因子レベルへの値の関連付け

  9. 9

    各要素バーの最後にコンマを付けて文字列のベクトルを出力する

  10. 10

    ベクトル内の各要素に次の要素を掛けます[r]

  11. 11

    ベクトル内の各要素に次の要素を掛けます[r]

  12. 12

    Rで2つの類似した関数をベクトル化すると、1つで機能します

  13. 13

    ベクトルの類似した数をグループ化する

  14. 14

    行列内で最も近い/類似した値(ベクトル)を見つける

  15. 15

    R-ベクトル内の各要素を他のベクトルの各要素と合計します

  16. 16

    文字ベクトルに基づいて、類似の関数をリストのさまざまな要素に適用します

  17. 17

    Matlab、xの各要素を関数に渡すことでyベクトルを定義します

  18. 18

    ベクトル内の複数の要素を関連付ける慣用的な方法

  19. 19

    Aの各要素のベクトルBで最も近い値を見つけるR高速メソッド

  20. 20

    数値ベクトルの各要素に文字列を追加するmatlab

  21. 21

    文字ベクトルの各要素の出現回数を追加します

  22. 22

    ベクトルの各要素の要素を同じベクトルの後続の要素で分割します

  23. 23

    Rのベクトルの値ごとに関数を適用した後、因子のリストを返す関数を作成します

  24. 24

    Rのベクトルの値ごとに関数を適用した後、因子のリストを返す関数を作成します

  25. 25

    別の配列の各要素について、配列内で最も近い値を見つけることをベクトル化する

  26. 26

    Rの数値ベクトルの各要素から最初の桁を抽出します

  27. 27

    特定のベクトルに類似したすべてのベクトルをすばやく見つける方法

  28. 28

    最後の単語の前に「and」を付けてコンマで区切った単語のベクトルを連結するstringr関数

  29. 29

    ベクトルの各要素をifelse

ホットタグ

アーカイブ