У меня есть два кадра данных: SCR и matchSCSC. Каждый из них содержит список заголовков белков. matledSCR - это подмножество SCR, созданное непосредственно из SCR. Строки для заголовков белков matchedSCR должны, таким образом, быть идентичны их аналогам в SCR и быть в состоянии служить в качестве индекса, который связывает их. Однако, когда я пытаюсь сопоставить записи, только небольшая их часть соответствует независимо от того, какой метод я использую. Ниже всего около 6000 из того, что должно быть 17000 записей.Неожиданный отказ от соответствия строкам символов из двух списков в R
subset(SCR, (SCR$MESH_HEADING %in% matchedSCR$Heading))
SCR[SCR$MESH_HEADING %in% matchedSCR$Heading, ]
sqldf("select * from SCR join matchedSCR on SCR.MESH_HEADING=matchedSCR.Heading")
Что такое безумие в том, что я могу найти недостающую строку и сопоставить ее вручную!
if(SCR$MESH_HEADING[64] == matchedSCR$Heading[2]) {print("T")}
[1] "T"
Matching SCR к другому подмножеству dataframe, orthologSCR, созданный почти точно так же, как с ОПЗ, работает отлично, поэтому я предполагаю, что проблема как-то с matchedSCR, но я не могу понять, почему. Это всего лишь один столбец символов (не факторов), таких как:
VisA protein, Streptomyces virginiae
VisB protein, Streptomyces virginiae
VisC protein, Streptomyces virginiae
VisD protein, Streptomyces virginiae
subpeptin JM-A, Bacillus subtilis
subpeptin JM-B, Bacillus subtilis
BT peptide antibiotic, Brevibacillus texasporus
LI-Fb peptide, Paenibacillus polymyxa
Может ли кто-нибудь предложить причины, по которым эти сравнения символов могут быть неудачными? Не могли бы специальные персонажи по каким-то причинам разобраться в этом? (Они, похоже, не имеют значения при сопоставлении с другим фреймом данных подмножества, который работает.) Мне действительно нужны непревзойденные данные из SCR. Я могу сгенерировать это прямо сейчас с невероятно медленным процессом, основанным на противоположности сложного выбора, который создал matchedSCR, но мне бы очень хотелось узнать из ошибки, которую я получаю, поэтому я не встречаюсь с этим снова.
Спасибо! Я попробую ваши предложения. : – NotMyJob
@NotMyJob, в этом сообществе принято пытаться решить данное решение, и если оно работает, отметьте как «ответили», и если вы хотите поблагодарить меня, вы отдадите мой ответ (комментируя, чтобы поблагодарить, на него нахмурились). Если он не работает, вы должны написать комментарий, определяющий, почему нет. Помните, это должно быть полезно для других после вас! –