У меня есть два фрейма данных с разными # наблюдениями (один длинный с 2220 наблюдениями, другой широкий с 37 наблюдениями).Кадры данных совместно используют переменную «SID», хотя в длинном кадре данных имеется 60 строк для каждого значения SID, а в широком - только одна.Широкий фрейм данных имеет дополнительную переменную «Экспериментатор», каждый идентификатор безопасности имеет соответствующий номер Экспериментатора.Я хотел бы сделать столбец «Experimenter» в длинном фрейме данных, хотя для каждого SID есть 60 экземпляров, и я хотел бы, чтобы соответствующее значение Experimenter добавлялось и повторялось каждый раз, когда возникает значение SID (так 60 раз).
Вложенные команды if-else для каждого предмета кажутся очень утомительными, поэтому я надеюсь, что есть альтернатива
Я добавил вывод dput из каждого фрейма данных, к сожалению, я не уверенкак их встраивать.Прямо сейчас в длинном фрейме данных «SID» называется «Subject», но они являются одной и той же переменной.
Wide:
structure(list(SID = 7301:7302, Experimenter = c(2L, 1L)), .Names = c("SID",
"Experimenter"), class = "data.frame", row.names = c(NA, -2L))
Long:
structure(list(Subject = c(7301L, 7301L, 7301L), Session = c(1L,
1L, 1L), Stimtype = structure(c(1L, 1L, 1L), .Label = "Control", class =
"factor"),
Valence = structure(c(1L, 1L, 1L), .Label = "Neutral", class = "factor"),
Block = c(1L, 1L, 1L), Image = c(12L, 17L, 22L), Group = structure(c(1L,
3L, 2L), .Label = c("Neutral_1660", "Neutral_5300", "Neutral_7233"
), class = "factor"), Response = c(1L, 1L, 1L), Stimulus = c(1660L,
7233L, 5300L)), .Names = c("Subject", "Session", "Stimtype",
"Valence", "Block", "Image", "Group", "Response", "Stimulus"), class =
"data.frame", row.names = c(NA,
-3L))
Если мы смотрим на эти изображения, все, что я хочу сделать, это вставить переменную "Experimenter" вдлинный фрейм данных, который имеет значение «2», когда «Предмет» равен «7301» (как в широких данных), и так далее для всех субъектов.
Заранее спасибо.