web-dev-qa-db-ja.com

文字列をASCII値に変換する

私はこれを行う方法についてインターネットを検索してきましたが、実際にそれを行う方法を見つけることができませんでした。

基本的に、私は一連の大きなデータフレームを持っています。これらのすべてのデータセットの列ベクトルの1つを文字列から変換します。たとえば、ASDFSDFSAFDSAをASCII =形式。Rで処理するには大きすぎるため、これをbashで実行します。

私はJavaとRでこれを行う関数がありますが、bashで同等の関数を見つけることができませんでした。xxd関数と、フォーラムですが、適切なASCII形式ではなく、整数のカップルを与えてしまいます。

以下は、データの小さなスニペットのdput出力です。

structure(list(Clone.ID = 0:5, Clone.count = c(2454L, 1915L, 
1369L, 1255L, 1152L, 1099L), AA..Seq..CDR3 = c("CASSNSDRTYGDNEQFF", 
"CATSSVLTQQETQYF", "CASSSRGLANTQYF", "CASSLGTALNTEAFF", "CASSRRHLGNTGELFF", 
"CASSEGRSNQPQHF")), row.names = c(NA, 6L), class = "data.frame")

アップロードされたデータは次のようになります:

    Clone.ID Clone.count   AA..Seq..CDR3
1        0        2454 CASSNSDRTYGDNEQFF
2        1        1915   CATSSVLTQQETQYF
3        2        1369    CASSSRGLANTQYF
4        3        1255   CASSLGTALNTEAFF
5        4        1152  CASSRRHLGNTGELFF
6        5        1099    CASSEGRSNQPQHF

目的の出力は、col AA..Seq.CDR3が代わりに次のエントリを持つようにすることです。

067 065 083 083 078 083 068 082 084 089 071 068 078 069 081 070 070
067 065 084 083 083 086 076 084 081 081 069 084 081 089 070
067 065 083 083 083 082 071 076 065 078 084 081 089 070 #and so on...

また、Rの変換の出力のように、ASCII表現が整数の配列ではなく整数である場合は理想的です。Pythonもそうだと思います。

どんな助けでも大歓迎です。

いつもありがとうございました。

2
h3ab74

うーん...私は尋ねてもいいなぜあなたはこれをしたいですか?私はおそらく個人的にはその逆を行うでしょう。私は10進コードよりも文字に堪能です。

ただし、目標をより正確に定義するために問題のclを言い換えましょう:-テーブルにASCII charsの列がAZの範囲にある(またはそれも小文字?)-各文字を1つのスペースと3桁の10進数のcvalue)を使用して変換します

Bashには強力な文字列/文字置換があります。

zz = CABXAB; echo $ {zz // A/'065'}

1
Fibo

あなたはPerlで素早く汚いことをすることができます:

$ Perl -alne 'print join " ", map { ord $_ } split //, $F[3] if $. > 1' datafile
67 65 83 83 78 83 68 82 84 89 71 68 78 69 81 70 70
67 65 84 83 83 86 76 84 81 81 69 84 81 89 70
67 65 83 83 83 82 71 76 65 78 84 81 89 70
67 65 83 83 76 71 84 65 76 78 84 69 65 70 70
67 65 83 83 82 82 72 76 71 78 84 71 69 76 70 70
67 65 83 83 69 71 82 83 78 81 80 81 72 70

ただし、Rのデータをすでに処理している場合は、ここで説明するように、ネイティブutf8ToIntの使用を検討する必要があります R:文字をASCIIコードに変換する方法?

1
steeldriver