#r #string #string-matching
Вопрос:
Я пытаюсь сопоставить столбцы двух фреймов данных в R на основе частично соответствующей строки. Ниже вы найдете небольшой пример того, как выглядят мои фреймы данных. Фрейм данных 1 содержит строки-стимулы, соответствующие строкам в фрейме данных 2, за которыми стоит «_FAM».
Фрейм данных 1:
Stimulus Mean
CR00 0.333
CR01 0.972
DF_0_30 0.831
DF_6_40 0.327
Фрейм данных 2:
Stimulus Mean
DF_0_30_FAM 0.423
CR00_FAM 0.768
DF_6_40_FAM 0.672
CR01_FAM 0.012
Есть ли инструмент, соответствующий этому? В конце концов, я хотел бы создать 1 кадр данных, содержащий все совпадающие строки, чтобы я мог вычислить корреляцию между этими двумя средними значениями.
Спасибо!
Комментарии:
1. Вы заглядывали в
agrep
это дело ?
Ответ №1:
Мы можем сделать что-то подобное, если у вас есть только шаблон _FAM
, добавленный во второй фрейм данных :
df2[,"Stimulus"]=str_remove(df2[,"Stimulus"],"_FAM")
merge(df1,df2,by="Stimulus")
Сначала вы удаляете шаблон _FAM
, а затем можете напрямую объединить свои наборы данных
Комментарии:
1. Спасибо за помощь! Я попробовал это, однако это дает мне следующий результат после первой строки: Стимул (строка 1): c(2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, ….) Предупреждающее сообщение: В stri_replace_first_regex(строка, шаблон, fix_replacement(замена): аргумент не является атомарным вектором; принудительное, А затем при выполнении второй строки: > объединить(stim_data,Famsubset 2,by=»стимул») [1] среднее значение стимула.x Std.x Среднее значение stim_char avg_fam. y Std.y <0 строк> (или имена строк 0-длины). Вы знаете, как я могу это решить?
2. Трудно сказать вам, что здесь происходит, без обзора ваших собственных кадров данных. Если вы добавите вывод
dput(head(stim_data))
иdput(head(Famsubset2))
в свой пост, я был бы рад помочь