В RI есть фрейм данных со значениями индекса в виде имен строк (называемый индексом), который выглядит примерно так:
index
[1] "F0000014" "F0000015" "F0000024" "F0000036" ...hundreds more
И у меня есть фрейм данных со значениями имен строк (называемый таблицей), который выглядит примерно так :
table
[1] "F0038001" "F0259700;F0259699.3" "F0259699;F0259700.4" "F0259247.4"
...thousands more
Многие из имен строк данных в «индексе» будут соответствовать значениям имен строк «таблицы», и это те строки, которые я хотел бы скопировать из «таблицы» в новый кадр данных «соответствия» .
Сложность состоит в том, что некоторые значения имен строк в табличном фрейме данных имеют под номера (обозначены. #), А некоторые также являются множественными индексными значениями, объединенными вместе с точкой с запятой. Поэтому все, что я хочу требовать для совпадения, это чтобы запрашиваемое значение индекса совпадало где-то в табличном значении, чтобы оно вызывалось как совпадающая строка и, следовательно, копировалось в фрейм данных 'match'.
У меня есть пробовал что-то подобное в R, основываясь на этом предыдущем сообщении Стеки :
for(var in rownames(index))
{
match <- table[grep(var, rownames(table)), ]
}
Но я получаю ошибку "неверное число измерений".
Я полагаю, что проблема заключается в неправильном указании имен строк таблицы данных неправильно в этой команде, так как это то, что отличается в моем запросе по сравнению с тем в связанном посте. Хотя любая дальнейшая модификация, которую я пробую, кажется, встречается с другой ошибкой.
Буду очень признателен за любую помощь, поскольку я не могу найти синтаксис, который работает!
Большое спасибо.
Андрей