Я пытаюсь создать калькулятор, который умножает группы перестановок, записанные в циклической форме (процесс, который описан в этом посте, для тех, кто незнаком: https://math.stackexchange.com/questions/31763/multiplication-in-permutation-groups-written-in-cyclic-notation). Хотя я знаю, что это было бы легче сделать сPython или что-то еще, я хотел попрактиковаться в написании кода на R, так как он относительно новый для меня.
Мой план игры для этого - принять ввод, такой как "(1 2 3) (2 4 1)"и разделить его на два отдельных списка или вектора. Однако у меня возникли проблемы с запуском этого, потому что из моего понимания функций символов (которые я исследовал здесь: https://www.statmethods.net/management/functions.html)), мне в конечном итоге придется использовать функцию grep (), чтобы найтиточки, в которых ") (" встречаются в моей строке, оттуда отщепляются. Однако grep принимает только аргументы в качестве аргументов, поэтому я пытаюсь привести свою строку в вектор. При исследовании этой проблемы я в основном видел, как люди предлагаютиспользуйте as.integer (unlist (str_split ())), однако, это не работает для меня, так как, когда я делю, не все целое иЗначения становятся NA, как видно из этого примера.
library(tidyverse)
x <- "(1 2 3)(2 4 1)"
x <- as.integer(unlist(str_split(x," ")))'
x
Есть ли альтернативный способ превратить строку в вектор, когда задействованы не только целые числа?Я также понимаю, что способы, которыми я пытаюсь разделить две перестановки, очень окольны, но это из-за функций характера, которые я исследовал, это кажется единственным способом.Если есть другие функции, которые могли бы сделать это проще, пожалуйста, дайте мне знать.
Спасибо!