Преобразуйте строку символов к значениям ASCII

Я перерывал Интернет о том, как сделать это, но не удался найти способ на самом деле сделать это..

В основном у меня есть серия больших кадров данных, и я хочу преобразовать один из векторов - столбцов во всех этих наборах данных от строки символов, сказать, например: ASDFSDFSAFDSA, к его эквиваленту в формате ASCII. Я хочу сделать это в ударе, потому что они являются слишком большими для обработки в R.

Я знаю в Java и R, там функции, которые делают это, но не удались найти его эквивалент в ударе. Я посмотрел на 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...

Кроме того, это было бы идеально, если бы представление ASCII было как целое число, а не массив ints, как вывод для преобразования R - и Python также, я верю.

Любая справка очень ценилась бы.

Спасибо всем в течение Вашего времени,

2
задан 20 March 2019 в 20:32

2 ответа

Вы могли сделать что-то quick'n'dirty в 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
ответ дан 2 December 2019 в 03:29

Хм... я могу спросить, почему Вы хотите сделать это? Я лично, вероятно, сделал бы реверс, 'causr я больше бегло говорю на буквах, чем в десятичных кодах..

Однако давайте перефразируем Вашу проблемную статью, чтобы более точно определить цель: - у Вас есть в таблице столбец символов ASCII в диапазоне A-Z (или это также нижний регистр?) - Вы хотите, чтобы каждый символ был переведен с его десятичным числом cvalue по одному пространству и 3 цифрам

Bash имеет мощную строку / символьная замена, например,

zz=CABXAB; $ эха {zz///' 065'}

1
ответ дан 2 December 2019 в 03:29

Другие вопросы по тегам:

Похожие вопросы: