Я очень новичок в кодировании на R (пожалуйста, прости меня за любые ошибки в терминологии, этикет и т. Д. c.). Я решил начать проект, чтобы получить немного больше опыта. Я археолог, который изучает кости животных, и в моей области у нас есть количественная единица, называемая минимальным количеством элементов (MNE). Этот блок очень сложно вычислить вручную, и я пытаюсь автоматизировать расчет. MNE - это минимальное количество целых костей, которые могут представлять собой совокупность фрагментированных костей. Итак, у меня есть коды скелетных частей, которые представляют определенные части кости, и я разработал правила поиска комбинаций в определенной последовательности c. Определенные комбинации равны 1 MNE и т. Д. c.
. Вот пример моего кадра данных:
EL_S PT
1P_L 1
HU_L 107,107,107,108,108
FE_L 103,105,108,110,103,103,108,110,105,107,103
Столбец EL_S
представляет скелетный элемент и сторону (т. Е. FE_L
равняется левому бедру), а столбец PT
представляет собой вектор символов кодов деталей, связанных с этой костью и стороной. Например, комбинация 103 и 105 равна 1 MNE. Чтобы быть более точным c, каков наилучший способ:
Назначить определенные значения комбинациям PT (однако, PT 1 равен целой кости и равен 1 MNE. Итак, я Я должен дать это значение, даже если это не комбо.)
Найти и извлечь эти комбинации (или отдельные значения) из вектора символов
Подсчет их появления
Загрузка этого подсчета в новый столбец "MNE"
И все это в указанном order
Я, конечно, понимаю, что это сумасшедший вопрос c спросите у этого сообщества. Я полностью не ожидаю, что кто-нибудь решит все эти проблемы за меня. Но если у кого-нибудь есть какие-либо советы по определению c используемых функций и т. Д. c. Для любых шагов в этом процессе, я был бы чрезвычайно признателен. Я думал об использовании stringr для объединения строк кода, скажем, в 103105, а затем подсчитывал эти совпадения. Но я не уверен, что это самый эффективный способ сделать это. Опять же, любая помощь здесь очень ценится!
Редактировать для уточнения:
В идеальном мире это то, что я надеюсь создать.
Я начинаю с Приведенный выше пример:
EL_S PT
1P_L 1
HU_L 107,107,107,108,108
FE_L 103,105,108,110,103,103,108,110,105,107,103
Я хотел бы сначала найти и извлечь PT 1. Этот код детали равен 1 MNE.
EL_S PT MNE
1P_L 1
HU_L 107,107,107,108,108
FE_L 103,105,108,110,103,103,108,110,105,107,103
Далее я хочу найти и извлечь комбо 103,105. Это равно 1 MNE. В приведенной выше таблице у FE_L было два экземпляра из 103,105 комбинаций, поэтому MNE = 2.
EL_S PT MNE
1P_L 1
HU_L 107,107,107,108,108
FE_L 108,110,103,103,108,110,107 2
И это будет go включаться до тех пор, пока не останется больше кодов деталей. При добавлении в столбец MNE, как указано, c найдены комбинации (или отдельные значения PT). Я надеюсь, что в этом есть смысл. Извиняюсь, если что-то здесь неясно.